每日一題 4 30 快樂數 簡單

2021-10-05 15:42:09 字數 981 閱讀 1907

編寫乙個演算法來判斷乙個數n是不是快樂數。

「快樂數」定義為:對於乙個正整數,每一次將該數替換為它每個位置上的數字的平方和,然後重複這個過程直到這個數變為 1,也可能是無限迴圈但始終變不到 1。如果可以變為1,那麼這個數就是快樂數。

如果n是快樂數就返回true;不是,則返回false

示例:

**輸入:**19

**輸出:**true

解釋:

1 + 9 = 82

8 + 2 = 68

6 + 8 = 100

1 + 0 + 0 = 1

1.這一題思路簡單,通過取餘和除來獲得平方和sum,判斷是否出現sum=1,出現則是true;否則知道出現迴圈則為false;

2.難點在於儲存每次的sum值的陣列a的個數需要多少?

3.根據我在leetcode的資料上的驗證,當a[100]時,計算的用時已經到了0ms,而極限是a[7],當a[6]時就會出錯。

//對於a的length,建議設定為100,

class

solution

sum +

= m*m;

cout << sum << endl;

if(sum ==1)

a[i]

= sum;

n = sum;

for(

int j =

0; j < i; j++)}

}return

false;}

};

1.對於迴圈所需a的length的判斷,是根據什麼來的?暫時未知;

2.a(7)是否是準確的極限,還是只是因為資料樣例的關係?

3.能否真正計算出a的長度極限小值?

每日一題 數對

本題來自牛客網,為網易2019年校招題之一。點我跳轉 題目描述 牛牛以前在老師那裡得到了乙個正整數數對 x,y 牛牛忘記他們具體是多少了。但是牛牛記得老師告訴過他x和y均不大於n,並且x除以y的餘數大於等於k。牛牛希望你能幫他計算一共有多少個可能的數對。輸入描述 輸入包括兩個正整數n,k 1 n 1...

每日一題 Windy 數

數字 dp 這道題與模板只有一點點稍微的不同,還需要判段一下 前導 0 因為我們是從高位開始列舉的,列舉到最後可能會出現這樣的情況 0004,顯然這個數不是 windy 數,但是我們可以看到 0 和 4 相差 是 2 的,所以如果不判斷前導 0 的話就會出現多加的情況,其他 的和模板類似。inclu...

每日一題 43 醜數

題目來自劍指offer 題目 題目換句話說 醜數就是連續除以2,3,5,之後商為1的數.bool isuglynum int nnum 消除因子3 while nnum 3 0 消除因子5 while nnum 5 0 if nnum 1 else 題目思路 醜數乘以2,3,5後仍是醜數。具體來說 ...