阿摩線上測驗 登入

申論題資訊

試卷:95年 - 095年高等三級暨普通資訊處理(普考)#32453
科目:程式設計
年份:95年
排序:0

申論題內容

一、請撰寫一函式(function):int inverse (int x)。此函數被呼叫時會根據傳入之四位數 正整數變數 x(大小範圍為 1000<= x <=9999)的內含值,傳回與 x 相反順序的數字。 (15 分) 
例如:若 int x = 3467; int k = inverse (x); 
則整數變數 k 的內含值將為 7643 若
 int x = 2730; int k = inverse (x); 
則整數變數 k 的內含值將為 372

詳解 (共 1 筆)

詳解 提供者:hchungw
#include <iostream>
using namespace std;
int inverse(int x) {
    int reversed = 0;
    while (x > 0) {
        // 取 x 的最後一位數字,並將其加到 reversed 的當前值上,然後乘以 10 以便於下一次迭代
        reversed = reversed * 10 + x % 10;
        // 移除 x 的最後一位數字
        x /= 10;
    }
    return reversed;
}
int main() {
    int x = 3467;
    int k = inverse(x);
    cout << "Inverse of " << x << " is " << k << endl;
    x = 2730;
    k = inverse(x);
    cout << "Inverse of " << x << " is " << k << endl;
    return 0;
}
這個函式首先初始化一個名為 reversed 的變數來存儲反轉後的數字,初始值為 0。然後,它進入一個迴圈,每次迭代都將 x 的最後一位數字加到 reversed 上,並將 x 除以 10 以移除其最後一位數字。這個過程一直持續到 x 變為 0 為止。最後,reversed 變數就是 x 的數字反轉後的結果。
請注意,這個實現方式也適用於非四位數的正整數,只要輸入的是一個正整數即可。