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


    【问题描述】
    数根问题递归求解:输入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;
    		}
    	else			
    		return b;
    } 
    
    int sum(int y) 		//求数根
    { 
        int t=y,result=0; 
        while(t>0) 
         { 
             result = result + t%10; 
             t = t / 10; 
         } 
         return result; 
    } 
    

  • 相关阅读:
    支付宝小程序InputItem清除icon不显示
    win11 激活 wi7 win11 魔兽争霸切换 后无法 回到游戏界面 处理办法
    HJ10 字符个数统计
    iOS 15系统导航栏适配
    HJ4 字符串分隔
    HJ7 取近似值
    [iOS]隐藏导航栏3种方式
    HJ3 明明的随机数
    HJ8 合并表记录
    HJ5 进制转换
  • 原文地址:https://www.cnblogs.com/Comet-Fei/p/11885231.html
Copyright © 2020-2023  润新知