0
已解决
毕小曼
初级光能
初级光能
http://judge.codingtang.com/problem/1802/
题目描述 Description
对于一个正整数n,将它的各个数位上的数字相加得到一个新数,如果这个数是一位数,我们就输出这个数字和,否则重复处理直到它成为一个一位数。 例如,n=34,3+4=7,7是一位数,所以输出7。 再如,n=345,3+4+5=12,1+2=3,3是一位数,所以输出3。 对于输入数字n,编程计算它的各位数字之和。
输入描述 Input Description
输入一个正整数n(1<=n<=100000)
输出描述 Output Description
输出一个经过多次各位数字求和以后的一位数
样例输入 Sample Input
345
样例输出 Sample Output
3
帮个忙,谢谢
回答者赏三十酷町豆!!!!!!
再恳求帮个忙(麻烦讲解一下)
0
已采纳
李祈乐
新手光能
新手光能
输入n,当它还不是0时,求出他的每一位,然后算出他的位数和,即:
while(n!=0)
{
ans+=n%10;
n/=10;
}
//ans一开始为0
当ans还不是个一位数时,就把ans赋值给n,重复上面的过程,使用双重while循环,直到ans小于10,就输出ans,即:
while(ans>=10)
{
n=ans;
ans=0;
//然后重复上面的过程,注意:ans赋值给n,ans要重新求n各位的和,须清0
0
夏天
中级守护
中级守护
while(n>=10) {
int a=n,s=0;
while(a!=0){
s+=a%10;
a/=10;
}
n=s;
}
cout<< n;
0
王梓澳
中级光能
中级光能
递归法
函数:
int csh(int n)
{
if (n==0)
return h;
h+=n%10;
return csh(n/=10);
}
main里:
int n;
cin>>n;
cout<<csh(n);
return 0;
注意:h的初始值为0,不然是乱码!
0