JavaScript中的Collatz猜想
各位!! 我正在努力为学校解决这个问题。我需要计算从任何正整数到1需要多少步。我应该用打字脚本。 Collatz猜想或3x+1问题可概括如下: 取任意正整数n。如果n是偶数,将n除以2得到n/2。如果n为奇数,则将n乘以3,再加1,得到3n+1。无限期地重复这个过程。这个猜想表明,无论你从哪个数字开始,最终都会达到1。 以下是我对代码的猜测:JavaScript中的Collatz猜想,javascript,typescript,collatz,Javascript,Typescript,Collatz,各位!! 我正在努力为学校解决这个问题。我需要计算从任何正整数到1需要多少步。我应该用打字脚本。 Collatz猜想或3x+1问题可概括如下: 取任意正整数n。如果n是偶数,将n除以2得到n/2。如果n为奇数,则将n乘以3,再加1,得到3n+1。无限期地重复这个过程。这个猜想表明,无论你从哪个数字开始,最终都会达到1。 以下是我对代码的猜测: function steps(n: number) { let counter: number = 0; if (n > 0 &am
function steps(n: number) {
let counter: number = 0;
if (n > 0 && Number.isInteger(n)) {
while (n !== 1) {
if (n % 2 === 0) {
n = n / 2;
counter++;
} else if (n % 2 !== 0) {
n = (n * 3) + 1;
counter++;
}
return counter;
}
} else {
throw new Error('Only positive whole numbers are allowed');
}
}
我希望我的代码尽可能透明,这就是为什么我可能写了太多代码。别介意。没错。返回的位置不合适。它应该在外面,而不是环路
function steps(n: number) {
let counter: number = 0;
if (n > 0 && Number.isInteger(n)) {
while (n !== 1) {
if (n % 2 === 0) {
n = n / 2;
counter++;
} else if (n % 2 !== 0) {
n = (n * 3) + 1;
counter++;
}
}
return counter;
} else {
throw new Error('Only positive numbers are allowed');
}
}
它有用吗?如果是,请考虑张贴。我们在这里只修复代码,不进行审查;)你好不,它不起作用。我需要一个代码修复。我明白了。“返回”不合适。