1、按照金字塔行数减1的数量从高到低按相对应的空格键次数。
2、每一行在按好空格键次数后打上星号即可使js输出的金字塔居中。
<script type="text/javascript">var nextLeftNum=1//下一行最左边开始的数
var stop=false
function printJzt(n){
for(var i=1i<ni++){
document.write(getRowN(i)+"<br>")
//如果最左边开始的数大于n则跳出循环,结束打印
if(nextLeftNum>n)return
}
}
function getRowN(r){
var leftNull=60
var v=""
//先补左边的空格
for(var i=0i<(leftNull-r*2)i++){
v+="&nbsp"
}
for(var i=nextLeftNumi<nextLeftNum+ri++){
//如果小于10则在数据前面在补一个空格
if(i<10)v=v+"&nbsp"+i+"&nbsp&nbsp"
else v=v+i+"&nbsp&nbsp"
}
//给下一行最左边数据赋值
nextLeftNum=nextLeftNum+r
return v
}
//调用打印到25的金字塔这里可以是任意的整数
printJzt(25)
</script>
刚才发的空格没有转义,现在可以了
打印的结果是:
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 26 27 28