Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 打印从4到9999的数字的根_Javascript_Typescript_Root - Fatal编程技术网

Javascript 打印从4到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++

我想把所有数字的根打印到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 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完全是个新手。