此題為出自zerojidge 基礎題a038 數字翻轉

點我觀看題目

以下是我寫出來的答案


(一)沒有struct版本

#include 
using namespace std;

int reverseNumber(int num);

int main() 
{
    int num;
    cin >> num;
	int reversedNum;
	reversedNum=reverseNumber(num);

    cout << reversedNum << endl;

    return 0;
}

int reverseNumber(int num)
{
	// 當數字為 0 時直接輸出 0
    if (num == 0) 
	{
        cout << num << endl;
        return 0;
    }

    // 反轉數字同時忽略尾部的零
    int reversedNum = 0;
    while (num > 0) 
	{
        int digit = num % 10;  // 獲取最後一位數
        num /= 10;  // 移除最後一位數

        if (digit == 0 && reversedNum == 0) 
		{
            // 忽略尾部的零
            continue;
        }

        reversedNum = reversedNum * 10 + digit; // 將數字反轉
    }
    return reversedNum;

}


點我看程式碼


 

(二)有struct版本

 



#include <iostream>
using namespace std;

struct Reverse
{
	int num;
	int reverseNumber(int num);
};

//(struct內已經宣告過,不必再次宣告)
//int Reverse::reverseNumber(int num);

int main() 
{
    Reverse reverse;
    cin >> reverse.num;
	int reversedNum;
	reversedNum=reverse.reverseNumber(reverse.num);

    cout << reversedNum << endl;

    return 0;
}

int Reverse::reverseNumber(int num)
{
	// 當數字為 0 時直接輸出 0
    if (num == 0) 
	{
        return 0;
    }

    // 反轉數字同時忽略尾部的零
    int reversedNum = 0;
    while (num > 0) 
	{
        int digit = num % 10;  // 獲取最後一位數
        num /= 10;  // 移除最後一位數

        if (digit == 0 && reversedNum == 0) 
		{
            // 忽略尾部的零
            continue;
        }

        reversedNum = reversedNum * 10 + digit; // 將數字反轉
    }
    return reversedNum;

}

}

 

點我看程式碼

 

 

 

arrow
arrow
    全站熱搜

    戰昇 發表在 痞客邦 留言(0) 人氣()