Javascript 打印从4到9999的数字的根
我想把所有数字的根打印到9999。如何告诉程序跳过没有圆根的数字?这是密码Javascript 打印从4到9999的数字的根,javascript,typescript,root,Javascript,Typescript,Root,我想把所有数字的根打印到9999。如何告诉程序跳过没有圆根的数字?这是密码 let i=1; for (i===1;i>=1 && i <10000;i++){ let b = Math.sqrt(i); console.log(`${i} = ${b}`); } 设i=1; 对于(i===1;i>=1&&i您可以检查int值和原始值是否相同 let i=1; for (i=1;i>=1 && i <10000;i++
let i=1;
for (i===1;i>=1 && i <10000;i++){
let b = Math.sqrt(i);
console.log(`${i} = ${b}`);
}
设i=1;
对于(i===1;i>=1&&i您可以检查int
值和原始值是否相同
let i=1;
for (i=1;i>=1 && i <10000;i++){
let b = Math.sqrt(i);
if (Math.trunc(b) == b)
console.log(`${i} = ${b}`);
}
设i=1;
对于(i=1;i>=1&&i,您可以检查int
值和原始值是否相同
let i=1;
for (i=1;i>=1 && i <10000;i++){
let b = Math.sqrt(i);
if (Math.trunc(b) == b)
console.log(`${i} = ${b}`);
}
设i=1;
对于(i=1;i>=1&&i,您不需要迭代和测试最多10000个数。您可以直接计算两个数的幂:
var count = 0, i = 0;
while (count < 10000) {
i++;
var b = i * i;
console.log(`${i} = ${b}`);
count = b;
}
var计数=0,i=0;
而(计数<10000){
i++;
var b=i*i;
log(`${i}=${b}`);
计数=b;
}
或者,如注释中所述,您可以使用for循环优雅地执行此操作:
for (let i = 1; i*i < 10000; i++) {
console.log(`${i*i} = ${i}`);
}
for(设i=1;i*i<10000;i++){
log(`${i*i}=${i}`);
}
您不需要迭代和测试10000以内的每个数字。您可以直接计算两个数的幂:
var count = 0, i = 0;
while (count < 10000) {
i++;
var b = i * i;
console.log(`${i} = ${b}`);
count = b;
}
var计数=0,i=0;
而(计数<10000){
i++;
var b=i*i;
log(`${i}=${b}`);
计数=b;
}
或者,如注释中所述,您可以使用for循环优雅地执行此操作:
for (let i = 1; i*i < 10000; i++) {
console.log(`${i*i} = ${i}`);
}
for(设i=1;i*i<10000;i++){
log(`${i*i}=${i}`);
}
非常感谢much@Xcd:不要迭代该数字的所有可能值。请迭代所有可能的“根”。非常感谢much@Xcd:不要迭代该数字的所有可能值。而是迭代所有可能的“根”。缩写:for(让i=1;i*i<10000;i++){console.log(`${i*i}=${i});}
另外,您的while
条件不正确。您最多只能得到31
,而最后的结果应该是99
,我看不到代码中的要点。我不想打印数字的根。@Xcd:您想要所有可能的值,其中所述值的根是一个整数。那么为什么不迭代所述整数呢?这比迭代每一个可能的值、取其根并检查它是否为整数快得多。更短:for(让i=1;i*i<10000;i++){console.log(`${i*i}=${i});}
另外,您的while
条件不正确。您最多只能得到31
,而最后的结果应该是99
,我看不到代码中的要点。我不想打印数字的根。@Xcd:您想要所有可能的值,其中所述值的根是一个整数。那么为什么不迭代所述整数呢?这比迭代每个可能的值,取其根,然后检查它是否为整数要快得多。顺便问一下:我想知道在for子句的第一部分中检查i===1
的原因是什么;这是一个类型脚本吗?因为这在常规js OO中可以省略,事实上,i==1
在js.i中是无效的n两种语言,当你只写两个==例子:让A=5;让B=“5”;如果(A==B)…它会认为它是真的,因为它把A变成5的字符串。当你有===5时,不等于“5”。,因为一个是数字,另一个是字符串类型。简短地说===不仅检查值,还将类型设置为OK。为了澄清,我没有问===的问题,而是为什么要在通常索引器初始化的位置编写条件。因为没有使用条件的值:实际上,您可以只编写 false
而不是i===1
并且它仍然有效。只有我的2美分。这不是一个精确的副本,加上OP完全是一个新手。顺便问一下:我想知道为什么要在for子句的第一部分检查i==1
呢;这是打字脚本吗?因为这在常规js OO中可以省略,事实上,i=== 1 在JS中无效。在两种语言中,当只写两个==示例:让A=5;让B=“5”;如果(A==B)…它会认为它是真的,因为它把A变成5的字符串。当你有===5时,不等于“5”。,因为一个是数字,另一个是字符串类型。简短地说===不仅检查值,还将类型设置为OK。为了澄清,我没有问===的问题,而是为什么要在通常索引器初始化的位置编写条件。因为没有使用条件的值:实际上,您可以只编写 false
而不是i===1
并且它仍然有效。只有我的2美分。这不是完全重复的,加上OP完全是个新手。