测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A41789. 数根数根可以通过把一个数的各个位上的数字加起来得到。如果得到的数是一位数,那么这个数就是数根。如果结果是两位数或者包括更多位的数字,那么再把这些数字加起来。如此进行下去,直到得到是一位数为止。 比如,对于24来说,把2和4相加得到6,由于6是一位数,因此6是24的数根。再比如39,把3和9加起来得到12,由于12不是一位数,因此还得把1和2加起来,最后得到3,这是一个一位数,因此3是39的数根。…

填空题 中等

题目描述

数根

数根可以通过把一个数的各个位上的数字加起来得到。如果得到的数是一位数,那么这个数就是数根。如果结果是两位数或者包括更多位的数字,那么再把这些数字加起来。如此进行下去,直到得到是一位数为止。 比如,对于24来说,把2和4相加得到6,由于6是一位数,因此6是24的数根。再比如39,把3和9加起来得到12,由于12不是一位数,因此还得把1和2加起来,最后得到3,这是一个一位数,因此3是39的数根。

输入

一个正整数(小于10^1000)。

输出

一个数字,即输入数字的数根。

样例输入

24

样例输出

6

参考答案

#include <bits/stdc++.h> using namespace std; string a; int num_g(int n){ if(n<10) return n; else { int t=0; while(n>0){ t+=n%10;n/=10; } return num_g(t); } } int main() { cin>>a; int l=a.size(); int sum=0; for(int i=0;i<l;i++) sum+=a.at(i)-'0'; cout<<num_g(sum)<<endl; return 0; }
上一题 下一题