示例:
输入: 38
输出: 2
解释:各位相加的过程为:3 + 8= 11, 1 + 1=2。由于2是一位数,所以返回2。
可以先将输入的数的各个位数字进行相加,然后对其结果再进行像初始输入的数的一样的操作,直到最后各个位的数字的和小于10。
private static int count(int num) { int sum = 0; if(num < 0){ return -1; //如果不是一个正数 } if(num == 0){ return 0; } while (sum == 0 || sum >= 10) { //如果退出第一层循环说明sum小于10 if (sum != 0) { //避免第一次进入 num = sum; sum = 0; } while (num != 0) { //求每次各个位数字的和 sum += num % 10; num = num / 10; } } return sum; }
例如:输入99
结果: