求一个数各位上数字之和,可以先让他%10得到最后个位上的数,让后让它除以10;继续将结果%10得到十位上的数;如此循环直到除10后值为0时结束
{
int n = 0;
int sum = 0;
scanf("%d", &n);
while (n)
{
sum = sum + n % 10;
n = n / 10;
}
printf("%d", sum);
system("pause");
return 0;
}
用递归实现就是通过一个函数不断调用自身而得到这个数的每位数之和,而这个递归函数的出口就是n=0是返回结果;
int DigitSum(int n)
{
if (n < 0)
return 0;
return n%10 + DigitSum(n / 10);
}
int main()
{
int n = 0;
scanf("%d", &n);
int i = DigitSum(n);
printf("%d", i);
system("pause");
return 0;
}