我一直在尝试伪代码这一个小时并试了很多东西,但我根本无法解决这个问题。当用户输入数字时,如何打印此形状,如10?
1
2 3
4
5 6
7
8 9
10
答案 0 :(得分:0)
使用真正的字体可能看起来更好,但这里的模式是......
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;
}
&#13;
<div id="theDiv"></div>
&#13;
答案 1 :(得分:0)
这样的事可能有用:
<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>
该标志用于确定是否在当前行上打印一个或两个数字。但是,打印两个数字时必须确保不要超过限制。我没有包括那张支票。
答案 2 :(得分:0)
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;
&#13;
<div id="data"></div>
&#13;
答案 3 :(得分:0)
简单版本:
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,则会有一个新行。