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
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP