C++中重複追加數字形成的數字的遞迴求和


給定兩個整數“number”和“repeat”作為輸入。目標是計算輸入數字重複“repeat”次數後形成的數字的各位數字之和,直到該和變成一位數。重複此過程,直到獲得的數字的各位數字之和變成一位數。如果輸入數字是123,repeat=2,則123123的各位數字之和為1+2+3+1+2+3=12,它不是一位數。現在,12的各位數字之和是1+2=3。輸出將為3。

讓我們看看這個的各種輸入輸出場景

輸入 − number=32 repeat=3

輸出 − 重複追加數字形成的數字的遞迴求和是:6

解釋 − 323232的各位數字之和是3+2+3+2+3+2=15,而15的各位數字之和是1+5=6。6是一位數,所以輸出為6。

輸入 − number=81 repeat=4

輸出 − 重複追加數字形成的數字的遞迴求和是:9

解釋 − 81818181的各位數字之和是1+8+1+8+1+8+1+8=36,而36的各位數字之和是3+6=9。9是一位數,所以輸出為9。

下面程式中使用的步驟如下

  • 宣告兩個整型變數number和repeat。將資料作為Recursive_Sum(number, repeat)傳遞給函式。

  • 在Recursive_Sum(int number, int repeat)函式內部

    • 宣告一個整型變數total,並將其設定為repeat * sum(number);

    • 返回對函式的呼叫,如sum(total)。

  • 在sum(int number)函式內部

    • 檢查如果number為0,則返回0。

    • 檢查如果number % 9為0,則返回9。

    • 否則,返回number % 9

  • 列印結果。

示例

#include <bits/stdc++.h>
using namespace std;
int sum(int number){
   if(number == 0){
      return 0;
   }
   if(number % 9 == 0){
      return 9;
   }
   else{
      return number % 9;
   }
}
int Recursive_Sum(int number, int repeat){
   int total = repeat * sum(number);
   return sum(total);
}
int main(){
   int number = 12;
   int repeat = 4;
   cout<<"Recursive sum of digits of a number formed by repeated appends is: "<<Recursive_Sum(number, repeat);
   return 0;
}

輸出

如果我們執行上述程式碼,它將生成以下輸出

Recursive sum of digits of a number formed by repeated appends is: 3

更新於:2021年11月3日

321 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告