若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。
題目連結,
Wiki的說明:
數根是將一正整數的各個位數相加(即橫向相加),若加完後的值大於
10的話,則繼續將各位數進行橫向相加直到其值小於
十為止,或是,將一數字重複做數字和,直到其值小於十為止,則所得的值為該數的
數根。
例如54817的數根為
7,因為5+4+8+
1+7=25,25大於10則再加一次,2+5=7,7小於十,則7為54817的數根。
由上述說明可能會讓人寫出一個每個位數相加的程式吧,不過其實有
公式可以解的:
所以程式碼就很短又很快啦。
1
2
3
4
5
6
| class Solution {
public:
int addDigits(int num) {
return num - 9 * (floor( (num-1) / 9));
}
};
|
沒有留言:
張貼留言