问题描述 给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。返回这个结果。 问题分析 我们至少要将num的每一位相加一次得到一个新的数字,然后判断是否新的数字需要每一位再次相加,如此重复下去,这使用do{}while(条件)很容易做到。 代码 int addDigits(int num) { int sum = 0; do{ sum = 0; while(num!=0){ int x = num%10; sum += x; num/=10; } num = sum; }while(sum>=10); return sum; } 提交结果截图