问题:给一个非负整数,如num=68,6+8=14,1+4=5;即求出该整数各位数字相加之和,若该和大于9继续加,直到其为一个个位数
- num=a[n]a[n-1]...a[2]a[1]a[0],num=10^n*a[n]+10^(n-1)*a[n-1]+……+10^1*a[1]+10^0*a[0]
- 1%9=1;10%9=1;100%9=1……
- 由此规律可知num%9=a[n]+a[n-1]+……+a[1]+a[0]
- 因为是除法,所以余数肯定为最小的该数字
- 该数字又被称为数根
public int addDigits(int num) {
if(num%9==0&&num!=0)
return 9;
else
return num%9;
}