1. 程式人生 > >Leetcode-------258. 各位相加

Leetcode-------258. 各位相加

給定一個非負整數 num,反覆將各個位上的數字相加,直到結果為一位數。

示例:

輸入: 38
輸出: 2 
解釋: 各位相加的過程為3 + 8 = 11, 1 + 1 = 2。 由於 2 是一位數,所以返回 2。

--------------------------------------------------------------------------------------------------------------------------------------------------

維基百科的一篇文章:Digital root.

公式的意義:在圖中,當n時9的倍數是,dr(n)=9;不是9的倍數時,dr(n)=n%9 ;n=0時,顯然等於0

.

         自己想了一下,發現9的倍數的每一位的和恰好等於9,那麼就說通了,當9*n+1時每一位的和應為10,最後結果應是1(最後的結果應該是一個個位數,也就是在0-9之間迴圈),這樣重複迴圈。

9*n+1        1

9*n+2        2

9*n+3        3

9*n+4        4

9*n+5        5

9*n+6        6

9*n+7        7

9*n+8        8        

9*n+9        9         9的倍數的各位數字之和一定為9

 

真挺難的這類題目,關鍵是當你看到別人突然拿出一個特別簡單的寫法時,自己一臉懵逼,這是什麼操作? 這種都有公式?

真挺難的。。。。。。。。。。。。。。。。。。