202. Happy Number

https://leetcode.com/problems/happy-number/

給定一個(gè)數(shù)字找蜜,每一次拿出這個(gè)數(shù)字 abc 的每一位執(zhí)行 a^2 + b^2 + c^2 猿诸,得到一個(gè)新的數(shù)婚被,然后再把新的數(shù)進(jìn)行逐位平方取和,如果最后面得到的值為1梳虽,那么這個(gè)數(shù)就是 happy number

分析:

對(duì)于一個(gè)數(shù)A址芯,經(jīng)過(guò)一系列上面的操作后,達(dá)到數(shù)字B窜觉,經(jīng)過(guò)一系列操作谷炸,最后還會(huì)到數(shù)字B,即 A --> B --> B --> B禀挫,因此我們需要找到是否出現(xiàn)了循環(huán)

  • 這里采用快慢指針的方法旬陡,快的比慢的每次多跑2步,這樣子快的會(huì)追上慢的语婴,形成一個(gè)環(huán)描孟;出現(xiàn)這種情況后再判斷此時(shí)的值是否是1,如果是1就是快樂(lè)數(shù)
  • 也可以使用 hashset, 判斷經(jīng)過(guò)操作后的值是否之前出現(xiàn)了砰左,由于hashset需要占據(jù)空間匿醒,因此這里不采用
class Solution {
public:
    bool isHappy(int n) {
        int n1 = n, n2 = next(n);
        while(n1!=n2 && n2 != n)
        {
            n1 = n2;
            n2 = next(n2);
        }
        if(n1==1)
            return true;
        else
            return false;
    }
    
private:
    int next(int n)
    {
        int result=0, temp=0;
        while(n)
        {
            temp = n%10;
            result += temp*temp;
            n/=10;
        }
        return result;
    }
};

還有一種方法:對(duì)于非快樂(lè)數(shù),最后面肯定會(huì)到達(dá)4(待證明)菜职,因此只要判斷每次經(jīng)過(guò)上述操作是否得到4

class Solution {
public:
    bool isHappy(int n) {
        int result=0;
        while(n!=1 && n!=4){
            int result=0;
            while(n)
            {
                result += (n%10) * (n%10);
                n/=10;
            }
            n = result;
        }
        return n==1;
    }
};
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末青抛,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子酬核,更是在濱河造成了極大的恐慌蜜另,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嫡意,死亡現(xiàn)場(chǎng)離奇詭異举瑰,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)蔬螟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門(mén)此迅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人旧巾,你說(shuō)我怎么就攤上這事耸序。” “怎么了鲁猩?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵坎怪,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我廓握,道長(zhǎng)搅窿,這世上最難降的妖魔是什么嘁酿? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮男应,結(jié)果婚禮上闹司,老公的妹妹穿的比我還像新娘。我一直安慰自己沐飘,他們只是感情好游桩,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著耐朴,像睡著了一般众弓。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上隔箍,一...
    開(kāi)封第一講書(shū)人閱讀 51,292評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音脚乡,去河邊找鬼蜒滩。 笑死,一個(gè)胖子當(dāng)著我的面吹牛奶稠,可吹牛的內(nèi)容都是我干的俯艰。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼锌订,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼竹握!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起辆飘,我...
    開(kāi)封第一講書(shū)人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤啦辐,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后蜈项,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體芹关,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年紧卒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了侥衬。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡跑芳,死狀恐怖轴总,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情博个,我是刑警寧澤怀樟,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站坡倔,受9級(jí)特大地震影響漂佩,放射性物質(zhì)發(fā)生泄漏脖含。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一投蝉、第九天 我趴在偏房一處隱蔽的房頂上張望养葵。 院中可真熱鬧,春花似錦瘩缆、人聲如沸关拒。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)着绊。三九已至,卻和暖如春熟尉,著一層夾襖步出監(jiān)牢的瞬間归露,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工斤儿, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留剧包,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓往果,卻偏偏與公主長(zhǎng)得像疆液,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子陕贮,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容