如何打印交替的锯齿状数字图案
how to print an alternating zigzag-ish number pattern
我已经尝试了一个小时的伪代码,并尝试了多种方法,但我根本无法理解。当用户输入一个数字,比如10时,我该如何打印这个形状?
1
2 3
4
5 6
7
8 9
10
使用真正类型的字体可能会更好,但以下是模式。。。
var theDiv = document.getElementById('theDiv');
var oneNotTwo = true;
theDiv.innerHTML = '';
for (var i = 1; i <= 10; i++) {
if (oneNotTwo) {
theDiv.innerHTML += ' ' + i + ' <br/>';
} else {
theDiv.innerHTML += i + ' ' + (i + 1) + '<br/>';
i++;
}
oneNotTwo = !oneNotTwo;
}
<div id="theDiv"></div>
类似的东西可能会起作用:
<script>
var num = 10;
var flag = 0;
for(var i = 1; i<=num; i++)
{
if(flag == 0)
{
document.write(" " + i + " <br>");
flag = 1;
}
else
{
document.write(i + " " + ++i + "<br>");
flag = 0;
}
}
</script>
该标志用于确定是在当前行上打印一个还是两个数字。不过,当打印两个数字时,你必须确保不要超过限制。我没有包括那张支票。
var str="";
var one=true;
for(var i=1;i<=10;i=i+1){
if(one){
str +=" "+i+" "+"<br>";
}else{
str +=i+"  "+(i+1)+"<br>";
i=i+1;//extra increment when two numbers are added
}
one=!one;
}
document.getElementById("data").innerHTML=str;
<div id="data"></div>
简单版本:
var num = 10;
var zigzag = [];
var odd = true; // odd row, even row
for (var i = 1; i <= num; i++) {
if (odd) {
zigzag.push(i);
} else {
zigzag.push([i, i+1]);
i++;
}
odd = !odd;
}
/* loop through the zigzag array and print it however you like
zigzag = [
[1],
[2, 3],
[4],
[5, 6],
[7],
[8, 9],
[10],
];
*/
因为我喜欢你的问题,因为它很有挑战性,所以我更进一步。您可以设置列的最小值和最大值:
var num = 25;
var zigzag = [];
var odd = true;
var min = 3;
var max = 5;
for (var i = 1; i <= num; i++) {
if (odd) {
var row = [];
for (var j = 0; j < min; j++) {
var val = i + j;
if (val <= num) {
row.push(val);
}
}
if (row.length > 0) {
zigzag.push(row);
}
i += min - 1;
} else {
var row = [];
for (var j = 0; j < max; j++) {
var val = i + j;
if (val <= num) {
row.push(val);
}
}
if (row.length > 0) {
zigzag.push(row);
}
i += max - 1;
}
odd = !odd;
}
/*
zigzag = [
[1,2,3],
[4,5,6,7,8],
[9,10,11],
[12,13,14,15,16],
[17,18,19],
[20,21,22,23,24],
[25]
]
*/
如果还有一个剩余的数字,比如上面例子中的25,就会有一个新行
相关文章:
- 通过单击表单中的按钮,在代码生成中使用javascript生成字母数字代码
- 测试索引值是否等于某个数字的倍数
- 如何在Google柱状图中动态添加行/列
- 将数字转换为一定数量的硬币
- 键入最后一位数字后自动提交
- 如何在谷歌可视化api柱状图中使用的json对象内用数字替换字符串值
- 如何在JavaScript中填充未定义的锯齿状多维数组
- 火狐笔划文本锯齿状工件
- HTML5 画布绘图在平板电脑上变得锯齿状
- HTML5 画布倍增效果 - 锯齿状边缘
- HTML5 Canvas .translate 和 .scale 会导致图像边缘出现锯齿状
- Safari 和 Firefox 使用 Canvas 显示锯齿状线条
- 画布锯齿状的边缘因线条/笔触而变得粗糙
- 如何打印交替的锯齿状数字图案
- 旋转时有三条.js边缘和锯齿状/模糊的文本
- 当颜色变化时,画布形状上的锯齿状边缘
- 如何使用Regex来判断字符串中是否有两个非字母数字的特许状
- 避免锯齿状边缘
- 压平锯齿状多维阵列
- JavaScript HTML5-Canvas - 使用 SetInterval 绘制弧会导致锯齿状边缘