问题描述 给定一个非负整数 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; } 提交结果截图