当前位置: 代码迷 >> 综合 >> 【3星难度】C++程序设计:补齐函数求数根
  详细解决方案

【3星难度】C++程序设计:补齐函数求数根

热度:72   发布时间:2024-02-07 23:41:31.0

问题描述:

数根问题递归求解:输入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 root0=sum(x);if(root0<10&&root0>0)return root0;else root0=root(root0);
}int sum(int y) {int t=y,result=0;while(t>0) {result = result + t%10;t = t / 10;}return result;
}

 

  相关解决方案