2078: 各位相加
题目描述
给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。、
多实例测试
输入
输入num
输出
输出各位相加的过程为:3 + 8 = 11,1 + 1 = 2。 由于 2是一位数,所以输出 2。
样例输入
38
样例输出
2
代码:
#include <stdio.h>
int sum(int m)
{
int s,k;
s=0;
while(m)
{
k=m%10;
s+=k;
m/=10;
}
return s;
}
int main()
{
int m,t;
while(scanf("%d",&m)!=EOF)
{
t=sum(m);
while(t>=10)
{
t=sum(t);
}
printf("%d\n",t);
}
return 0;
}
思路分析:通过设立一个分离数位,求和函数;从而判断和是否是个位数,不断带入求和,有一些递归的思想。