Given a non-negative integer num, repeatedly add all its digits until the result has only one digit.
For example:
Given num = 38, the process is like: 3 + 8 = 11, 1 + 1 = 2. Since 2 has only one digit, return it.*/
對於小於10的直接返回,大於10的進行分割每位數字,然後加在一起,最後進行遞歸。
solution1
int addDigits(int num) {
if(num>=10)
{
int sum=0;
//分割數字並累加
for(;num!=0;num/=10)
sum+=num%10;
//進行遞歸
return addDigits(sum);
}
else
return num;
}
solution2int addDigits(int num) {
if(num>=0&&num<10)
{
return num;
}
else
return addDigits(num%10+addDigits(num/10));
}