如何修改JavaScript代码以生成目标数字图案输出?
调整代码生成指定输出方案
先拆解期望输出的规律:
- 每行显示的数字是斐波那契数列:1、2、3、5、8(从第三项开始,每项等于前两项之和)
- 每个数字重复的次数等于数字本身(比如数字5重复5次,数字8重复8次)
修改后的代码
var totalNumberofRows = 5; // 初始化斐波那契数列的前两项 var num1 = 1, num2 = 2; for (var i = 1; i <= totalNumberofRows; i++) { var currentNum; // 根据行数确定当前要显示的数字 if (i === 1) { currentNum = num1; } else if (i === 2) { currentNum = num2; } else { currentNum = num1 + num2; // 更新斐波那契数列的前两项,为下一行做准备 num1 = num2; num2 = currentNum; } // 生成重复currentNum次的字符串 var output = currentNum.toString().repeat(currentNum); console.log(output); }
代码说明
- 用
num1和num2维护斐波那契数列的前两项,循环中根据当前行数计算出要显示的数字 - 使用
repeat()方法快速生成重复指定次数的字符串,替代原有的内层循环,代码更简洁 - 如果你的运行环境不支持ES6的
repeat()方法,可以替换成内层循环的写法:
// 替代repeat的兼容写法 var output = ''; for (var j = 0; j < currentNum; j++) { output += currentNum; }
验证输出
运行修改后的代码,会得到完全符合要求的输出:
1 22 333 55555 88888888
内容的提问来源于stack exchange,提问作者Suresh T
相关产品推荐
相关产品推荐

