此題為出自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;
}
}
全站熱搜
留言列表