当前位置: 华文星空 > 新闻

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自制脚本下载链接: