Leetcode-------258. 各位相加
阿新 • • 發佈:2018-11-09
給定一個非負整數 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
真挺難的這類題目,關鍵是當你看到別人突然拿出一個特別簡單的寫法時,自己一臉懵逼,這是什麼操作? 這種都有公式?
真挺難的。。。。。。。。。。。。。。。。。。