計算機概論|HW14

題目敘述

請實作一程式,此程式可以不斷地要求使用者輸入一個正整數(<=2,147,483,647),直到輸入的值小於等於0時結束程式。當輸入一正整數N後,請將此數字N做一次Divide&Subtraction動作。 Divide&Subtraction動作詳細如下所示: 假設要做Divide&Subtraction動作的正整數為n個0~9的數字所組合而成,即In …I2I1,請將此數字的奇位數數字及偶位數數字分別取出組合成兩個新數字P、Q。 當n為偶數時, P= In-1 …I3I1 、Q= In …I4I2 當n為奇數時, P= In …I3I1 、Q= In-1 …I4I2 接下來請將P-Q的算式寫出,令S=P-Q,若S>=10,則請繼續將S再做一次Divide&Subtraction,如此重複運算,直到最後得到的S小於10為止。

答題思路

參考答案

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <cmath>

using namespace std;

int div_sub(int n) {
    int p = 0, q = 0;
    for(int i=0; n != 0; i++, n /= 100) {
        p += (n % 10) * pow(10, i);
        q += (n / 10 % 10) * pow(10, i);
    }
    printf("%d-%d=%dn", p, q, p-q);
    return p-q;
}

int main() {
    int n;
    while(cin >> n and n > 0) {
        while((n = div_sub(n)) >= 10);
    }

    return 0;
}
最後更新 Dec 14, 2022 12:00 +0800