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
廣告