LeetCode-202-快樂數(shù)

題目描述:編寫一個算法來判斷一個數(shù) n 是不是快樂數(shù)。
「快樂數(shù)」定義為:
對于一個正整數(shù),每一次將該數(shù)替換為它每個位置上的數(shù)字的平方和。
如果 可以變?yōu)??1,那么這個數(shù)就是快樂數(shù)。
如果 n 是快樂數(shù)就返回 true ;不是,則返回 false 。
示例說明請見LeetCode官網(wǎng)。
來源:力扣(LeetCode) ??
鏈接:https://leetcode-cn.com/problems/happy-number/ ??
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
解法一:暴力破解法
由于int類型的最大值的各數(shù)位的平方和相加的結(jié)果也是有限的數(shù),所以如果某個數(shù)不是快樂數(shù),則多次平方和相加后一定會出現(xiàn)循環(huán),當循環(huán)后就終止,因為再次計算的結(jié)果一樣,具體過程如下,用appearedNums記錄出現(xiàn)過的數(shù):
num從n開始,判斷num是否出現(xiàn)在appearedNums里,如果出現(xiàn)過,則出現(xiàn)循環(huán),直接返回false;
如果沒有出現(xiàn)過,則計算各數(shù)位的平方和sum是否為1,如果是1,則這個數(shù)是快樂數(shù);否則,繼續(xù)將sum賦值給num,繼續(xù)下一次判斷。
【每日寄語】 順其自然,人生會順暢很多,豁達以對,世界會溫柔很多。
標簽: