當前位置: 華文星空 > 新聞

044、JS

2022-02-25新聞

任意一個自然數,如果它是偶數就除以2,如果它是奇數就乘以3再加上1,它們計算後的結果重復上述計演算法則,最終都會出現4-2-1這樣的結果。

我們今天用JS的方式找找這個規律。

那麽如何判斷一個數是偶數或是奇數呢?可以被2除盡的數就是偶數,不可以的就是奇數。JS裏有一個計算余數的方法%,用2去除數碼,沒有余數的就是偶數,否則是奇數。

// 是否偶數 function isEven ( n ) { return n % 2 === 0 } // 是否奇數 function isOdd ( n ) { return n % 2 !== 0 }

這次因為按照一定的運演算法則計算後的結果還得計算,那麽又得用到上次我們提到的遞迴函數。

好了,我們試著寫一個函數,來找找是不是所有的數用上面提到的運演算法則計算後都會出現4-2-1這樣的結果。

// 獲取4-2-1迴圈 function fourTwoOne ( n ) { //遞迴函數最後結束的條件 if ( n === 1 ) { return } else { //switch語法,偶數就除以2 switch ( isEven ( n )) { case true : n /= 2 log ( n ) break ; //奇數就乘以3加1 case false : n = 3 * n + 1 ; log ( n ) break default : break ; } } //遞迴 return fourTwoOne ( n ) }

我們呼叫一下上面的函數,任意傳入一個數看看結果。

fourTwoOne ( 30 )

結果最後就是4-2-1,剩下的數碼我就不演示了,感興趣的小夥伴可以自己嘗試一下。本次分享了一個有趣的數學現象。解決問題的關鍵就是如何區分偶數和奇數,然後運用遞迴函數得到我們想要的最終結果,感謝各位小夥伴的耐心閱讀,我們下次分享再見。

AE自制指令碼下載連結: