Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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
如何打印从1到9的乘法表,但跳过所有相等的乘法?(JavaScript)_Javascript_Loops - Fatal编程技术网

如何打印从1到9的乘法表,但跳过所有相等的乘法?(JavaScript)

如何打印从1到9的乘法表,但跳过所有相等的乘法?(JavaScript),javascript,loops,Javascript,Loops,我必须打印出乘法表,如所示示例: 这是我到目前为止写的: var a=9; var b=9; 对于(var x=1;x1){ 变量y=2; 而(y试试这个: <!DOCTYPE html> <html> <head> <title>Multiply</title> <script> function multiply() { for (let i = 1; i <= 9; i++) {

我必须打印出乘法表,如所示示例:

这是我到目前为止写的:

var a=9;
var b=9;
对于(var x=1;x1){
变量y=2;
而(y试试这个:

<!DOCTYPE html>
<html>

<head>
  <title>Multiply</title>
  <script>
    function multiply() {
      for (let i = 1; i <= 9; i++) {
        let val = '';
        for (let j = i; j <= 9; j++) {
          val += `${i} * ${j} = ${i * j}; `;
        }
        console.log(val);
      }
    }

    window.onload = multiply();
  </script>
</head>

<body>
</body>
</html>

倍增
函数乘法(){

对于(让i=1;i在示例中,我们可以看到,对于每个x,乘法从y==x开始

所以你只需要用y=x开始第二个循环

var a = 9;
var b = 9;

for (var x = 1; x <= a; x++){
    for (var y = x; y <= b; y++) {
        var count = 0;
        count = x * y;
        process.stdout.write (x +" * "+ y +" = " + count+"; ");
    }
    console.log(); 
}
var a=9;
var b=9;

对于(var x=1;x我建议最好存储生成的乘法事实(例如
“3*7=21”
)在数据结构中,然后以您喜欢的方式输出它们。还有其他可能性,但最简单的可能是字符串数组。因此,从一个
range
函数开始,例如,
range(3,7)/=>[3,4,5,6,7]
,您可以这样编写代码:

const multTable = (a, b) => range(1, Math.min(a, b)).map(
  x => range(x + 1, Math.max(a, b)).map(y => `${x} * ${y} = ${x * y}`)
)
console.log(multTable(9, 9).map(row => row.join('; ')).join('\n'))
然后,
multTable(9,9)
将给出这样的数据结构,您可以这样记录:

const multTable = (a, b) => range(1, Math.min(a, b)).map(
  x => range(x + 1, Math.max(a, b)).map(y => `${x} * ${y} = ${x * y}`)
)
console.log(multTable(9, 9).map(row => row.join('; ')).join('\n'))
或者,您也可以选择将其格式化为HTML格式,或者完全使用它执行其他操作

//范围::(Int,Int)->[Int]
//例:范围(3,7)/=>[3,4,5,6,7]
常量范围=(开始,结束)=>Array(结束+1-开始).fill(0).map(((u,i)=>i+开始)
//范围::(Int,Int)->[[乘法事实]]
//其中,乘法事实是一个字符串,如“3*7=21”
常量multTable=(a,b)=>range(1,Math.min(a,b)).map(
x=>range(x+1,Math.max(a,b)).map(y=>`${x}*${y}=${x*y}`)
)

console.log(multTable(9,9).map(row=>row.join(“;”).join(“\n”)
我在这里看不到任何问题。您的代码有什么问题吗?请查看以了解如何提出一个好的相关问题。编辑您的问题以提高其质量。它正在打印此:,我想跳过所有相等的乘法。谢谢!)@assemblerOh我完全忘了。非常感谢!:)@Techniv