lintcode-【简单题】快乐数
生活随笔
收集整理的這篇文章主要介紹了
lintcode-【简单题】快乐数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目:
寫一個算法來判斷一個數是不是"快樂數"。
一個數是不是快樂是這么定義的:對于一個正整數,每一次將該數替換為他每個位置上的數字的平方和,然后重復這個過程直到這個數變為1,或是無限循環但始終變不到1。如果可以變為1,那么這個數就是快樂數。
樣例:
19 就是一個快樂數。
1^2 + 9^2 = 82 8^2 + 2^2 = 68 6^2 + 8^2 = 100 1^2 + 0^2 + 0^2 = 1答案:
一個不是【快樂數】的數字在進行每個位置上的數字平方和計算時會得到4這個值。
代碼:
1 class Solution { 2 3 public: 4 /** 5 * @param n an integer 6 * @return true if this is a happy number or false 7 */ 8 bool isHappy(int n) { 9 // Write your code here 10 int sum = n; 11 12 while(true) 13 { 14 sum = numSum(sum); 15 if(sum == 4) 16 { 17 break; 18 } 19 20 if(sum == 1) 21 { 22 return true; 23 } 24 } 25 26 27 return false; 28 } 29 30 int numSum(int n) 31 { 32 int sum = 0; 33 int x; 34 while(n != 0) 35 { 36 x = n % 10; 37 n = n /10; 38 sum += x * x; 39 } 40 41 return sum; 42 } 43 }; View Code?
轉載于:https://www.cnblogs.com/Shirlies/p/5210431.html
總結
以上是生活随笔為你收集整理的lintcode-【简单题】快乐数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BZOJ3091: 城市旅行
- 下一篇: 页面传值:属性,协议,Block传值