怎么用javascript控制hr长度来打印出金字塔,并且输出

如题所述

document.write("<h3>打印倒正金字塔直线</h3>");//打印一个h3标签,内容是里边的文字
var i= 61;//定义金字塔的起始/截止宽度(百分比为单位)
while(i>0)//进行循环,当宽度大于0时,打印一个宽度为i的hr水平线,并将i自减10个百分比
{
document.write("<hr width=" + i+"%/>");
i=i-10;
}
for(var j=11;j<70;j=j+10){//进行循环,对j赋以初值11,当j小于70时打印一个宽度为j的hr水平线,并将i自增10个百分比
document.write("<hr width=" + j+"%/>");
}

如果不用while,用for循环有两种方案:
第一种——两个for循环
document.write("<h3>打印倒正金字塔直线</h3>");
for(var i=61;i>0;i-=10){//打印倒金字塔
document.write("<hr width=" + i+"%/>");
}
for(var j=11;j<70;j=j+10){//打印正金字塔
document.write("<hr width=" + j+"%/>");
}
第二种——一个for循环
document.write("<h3>打印倒正金字塔直线</h3>");
for(var i=61,j=-1;i<70;){//当i>=11时,i每次自减10,当i<11之后,每次自增10,用j来控制10的正负
document.write("<hr width=" + i+"%/>");
if(i<11)
j=1;
i+=10*j;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-06-12
这里之所以不用utf-8编码是因为utf-8对于nbsp的处理与*的字体会导致排版错乱,就是不是用标准的宋体字,从而导致最终的结果无法查看。
反正你出题人出多少行,我都可以复制粘贴上面的内容完全可以实现,但是,今天编程编到一定量,有点大数据概念的时候,又见到这题,仔细思考了一下,要是出题人要求输出二十万行这样中间轴对称的星型金字塔,我TMD就呵呵了。

所以还是要彻底搞明白这个怎么实现,虽然在实际的编程中不会出现这样的编程,但是,据说一些无聊的面试还是会出这题,至少,后来者问你c语言的时候,问你如果输出二十万行这样的中间轴对称的星型金字塔,你还是要会,这题如果第一次做不好做的。