C++:函数求数根(总算写出来了。。。。)

来源:互联网 发布:js自动中跳转页面 编辑:程序博客网 时间:2024/06/07 09:38

【问题描述】
数根问题递归求解:输入n个正整数(输入格式中第一行为整数个数n,后续行为n个整数),输出各个数的数根。数根的定义:对于一个正整数n,我们将它的各个位相加得到一个新的数字,如果这个数字是一位数,我们称之为n的数根,否则重复处理直到它成为一个一位数,这个一位数也算是n的数根。例如:考虑24,2+4=6,6就是24的数根。考虑39,3+9=12,1+2=3,3就是39的数根。?
要求计算一个数的数根部分利用递归函数实现。
样例输入:
5
23 424 98 632 12345
样例输出:
5 1 8 2 6

测试输入:
2
39 999
测试输出:
3 9

测试输入:
2
54321 78906
测试输出:
6 3

#include <iostream> #include <cmath> using namespace std; int root(int); int sum(int); int main() {  int n;  cin>>n; //输入个数 int num;  for(int i=1;i<=n;i++)  {      cin >> num; //输入数值     cout << root(num) << " "; //得出数根 }  return 0; } int root(int x)  //筛选数根,判断是否满足条件{   int b;b=sum(x);if(b>=10)//如果大于等于10返回sum函数{b=sum(b);return b;}elsereturn b;} int sum(int y) //求数根{     int t=y,result=0;     while(t>0)      {          result = result + t%10;          t = t / 10;      }      return result; } 

原创粉丝点击