如果我的问题不明确。这是完整的描述:
考虑,n = 653;所以我想添加所有三位数,如6 + 5 + 3 = 14。 但它仍然不是一位数,所以我再次做1 + 4 = 5.现在它是按预期的,我该怎么做? 'n'可以包含任何整数。 我搜索并找到了如何分开数字。比我开始编写代码。但是我被困住了。我也发现了与我的问题类似的东西,但这对我来说并不清楚。我没有分享我未解决的代码,因为我想自己完成它。但我也很无奈。如果你告诉我怎么能这样做,那将会非常有帮助。对不起,如果问题不能安慰你。
答案 0 :(得分:5)
您需要结果或进程吗?如果你关心的只是结果,那么sum of sum of sum ... of digits可以找到:
int num = 653
int sum = num % 9;
if (sum == 0)
sum = 9;
答案 1 :(得分:0)
好的,策略是在这里申请。您需要总结多少个数字?在你的情况下3.让我们看看任何数字:
int sum = 0;
while( (n / 10) != 0 ) // break if the divsion is zero, meaning number go too small
{
sum += (n%10); // tell me about the rest and sum it
n = n / 10; // reduce n by dividing by ten
}
现在设置n = sum
并重复。是的,通过递归,它可以在外面添加另一个while循环。
如果数字小于除数本身,如果是整数,则得到0.使用模运算得到除法的其余部分。
使用
sum = num % 9;
似乎是一种更快捷的方式。