1. 程式人生 > 其它 >快樂數

快樂數

技術標籤:刷題

題目連結

題目:

編寫一個演算法來判斷一個數 n 是不是快樂數。
「快樂數」定義為:對於一個正整數,每一次將該數替換為它每個位置上的數字的平方和,然後重複這個過程直到這個數變為 1,也可能是 無限迴圈 但始終變不到 1。如果 可以變為 1,那麼這個數就是快樂數。
如果 n 是快樂數就返回 True ;不是,則返回 False 。

題解一:

把每次得到的數保持到容器中,如果得到的數在容器中已存在,則表明出現迴圈,返回false。如果得到的數為1,則表明此數為快樂數,返回true。

程式碼一:

class Solution {
public:
    int get_next
(int n){ int res=0; while(n>0){ res=res+(n%10)*(n%10); n/=10; } return res; } bool isHappy(int n) { set<int> s; while(n!=1&&s.count(n)==0){ s.insert(n); n=get_next(n); } return
n==1; } };

在這裡插入圖片描述