addDigits

/*
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;
}
solution2
int addDigits(int num) {
 
  if(num>=0&&num<10)
  {
      return num;
  }
  else
    return addDigits(num%10+addDigits(num/10));
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章