如何在 JavaScript 中生成乌拉姆数列?
javascriptweb developmentfront end technologyobject oriented programming
数学家乌拉姆提出从任意正整数 n(n>0)生成一个数字序列,如下所示 −
如果 n 为 1,则停止。 如果 n 为偶数,则下一个数字为 n/2。 如果 n 为奇数,则下一个数字为 3 * n + 1。 继续该过程,直到达到 1。
以下是前几个整数 − 的一些示例
2->1 3->10->5->16->8->4->2->1 4->2->1 6->3->10->5->16->8->4->2->1 7->22->11->34->17->52->26->13->40->20->10->5->16->8->4->2->1
我们需要编写一个 JavaScript 函数,该函数接受一个数字并返回以该数字开头的 Ulam 序列。
示例
其代码为 −
const num = 7;
const generateUlam = num => {
const res = [num];
if(num && num === Math.abs(num) && isFinite(num)){
while (num !== 1) {
if(num % 2){
num = 3 * num + 1
}else{
num /= 2;
};
res.push(num);
};
}else{
return false;
};
return res;
};
console.log(generateUlam(num));
console.log(generateUlam(3));
输出
控制台中的输出将是 −
[ 7, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1 ] [ 3, 10, 5, 16, 8, 4, 2, 1 ]
相关文章
有用资源
javascript 参考教程 - 该教程包含有关 javascript 的更多信息:https://www.cainiaomax.com/javascript/
打印
下一节:用 JavaScript 除以浮点数,将其四舍五入到小数点后 2 位,并计算余数 ❯❮ 上一节:在 JavaScript 中查找所有唯一数字对的索引之和的最小值,这些数字对的总和等于给定数字

