题目描述
对于一个整数x来说,我们规定它的数位之和是这样来计算的:如果x是一个个位数,那么它的数位之和就是它本身;否则的话,x的数位之和就等于它的各位数字相加所得到的那个整数的数位之和。例如:5555的数位之和等于2,它是按照以下的步骤来计算的:
5555 → 5 + 5 + 5 + 5 → 20 → 2 + 0 → 2
编写一个程序,输入一个正整数(该整数可以用long long 存储),输出它的数位之和。
输入格式:输入只有一行,即一个正整数。
输出格式:输出相应的数位之和。
注意:此题要求递归求解,如果出现非递归提交,无论是否通过,不论其他提交是否用了递归求解,此题均为0分。
输入样例
5555
输出样例
2
#include<stdio.h>
int sum(long long n);
int main()
{
long long n;
scanf("%lld",&n);
printf("%d",sum(n));
}
int sum(long long n)
{
if(n<9)
{
return n;
}
else
{
int sum0=0;
while(n>0)
{
sum0+=n%10;
n/=10;
}
return sum(sum0);
}
}