首页 > 文章列表 > 递归求和一个由重复追加形成的数字的各位数字之和,使用C++实现

递归求和一个由重复追加形成的数字的各位数字之和,使用C++实现

递归 c 求和
134 2023-09-05

给定两个整数“number”和“repeat”作为输入。目标是计算重复“重复”次数的输入数字的数字总和,直到总和变成单个数字。如此下去,直到得到的数字之和变成一位数。如果输入数字是123并且repeat=2那么123123的数字和将是 1+2+3+1+2+3=12 这不是个位数。现在12的各位数字和是1+2=3。输出将为 3

让我们看看此的各种输入输出场景

输入− number=32 Repeat=3

< strong>输出− 重复追加形成的数字的递归数字和为: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。

下面程序中使用的方法如下

  • 声明两个整数类型变量如数字和重复。将数据作为 Recursive_Sum(number, Repeat) 传递给函数。

  • 在函数内部作为 Recursive_Sum(int number, int Repeat)

    • 声明一个整型变量为total,并用repeat * sum(number)设置它;

    • 返回对函数的调用作为sum(total) .

  • 在函数内部作为 sum(int number)

    • 检查 IF 数字是否为 0,然后返回 0。

    • 检查 IF 数字 % 9 是否为 0,然后返回 9。

    • ELSE, return 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