怎样用JAVAscript编写数字金字塔
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样用JAVAscript编写数字金字塔相关的知识,希望对你有一定的参考价值。
要求页面上输出样式如下:
1
2 3
4 5 6
要求:
先设定一个任意数n(比如10, 或15, 或20,或30,等等) ,然后对此进行循环(从1到n) 。但需要判断,在哪个数字处需要“换行”(如3,6,10,15),而且还要判断,应该输出到哪个数值为止(如n=20,但只输出到15就停止了),使该金字塔成“标准型”三角(不出现最下面一行缺数字的情况)。
基本形式如下:
var n;
n= 25 //这个数可以任意改动
for(i=1;i<=n; i++)
document.write(“ ” + i + “ ”)
一定看清题目!要求是金字塔形式的!不是楼梯形的!谢谢!
var nextLeftNum=1;//下一行最左边开始的数
var stop=false;
function printJzt(n)
for(var i=1;i<n;i++)
document.write(getRowN(i)+"<br>");
//如果最左边开始的数大于n则跳出循环,结束打印
if(nextLeftNum>n)return;
function getRowN(r)
var leftNull=60;
var v="";
//先补左边的空格
for(var i=0;i<(leftNull-r*2);i++)
v+=" "
for(var i=nextLeftNum;i<nextLeftNum+r;i++)
//如果小于10则在数据前面在补一个空格
if(i<10)v=v+" "+i+" ";
else v=v+i+" ";
//给下一行最左边数据赋值
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 参考技术A 发现要做到很美观很难,先抛砖引玉吧。
var n = 20;
var j = 1;
var mark = 1;
var tier = calculateTier(n);
for(;j<=tier;j++)
if (n<=0)
break;
printBlank(tier-j);
for(var i = 1;i<=j;i++)
document.write(mark);
mark++;
printBlank(1);
document.write("<br>");
function printBlank(number)
if(number == 0)
return;
for(var i=0;i<number;i++)
document.write(" ");
function calculateTier(number)
if (number == 1)
return 1;
var tier = 1;
var endNumber;
while(true)
endNumber = tier * (tier + 1) / 2;
if (endNumber > number)
return --tier;
tier++;
----
上班搞了半个小时这个题目,突然发现前面有好多回复,很惊喜啊,结果一试-_-##汗本回答被提问者和网友采纳 参考技术B <script language="javascript">
var n=100;
var i=1,s=1,t=0,k;
for (var j=1;j<n+1;j++)
if (s==i)
t++;
i++;
s=0;
if (n-j<i)
break;
s++;
i=1;
s=1;
//上面的FOR跟下面的一样,只是想计算一下需要的行数,以便下面好计算留空
//变量t即为获取的行数
for (var j=1;j<n+1;j++)
if (s==1)
for (k=t;k>i;k--)
document.write(' '); //跟据上面的行数来补空
if (j<10) //这里为了显示美观将小于10的数前面补0;
document.write(' 0'+j);
else
document.write(' '+j);
if (s==i)
document.write('<br>');
i++;
s=0;
if (n-j<i) //判断下面的数字是否够一行,如不够则终止
break;
s++;
</script>
-------------------------------------
你试了没有?,这个就是金字塔。
不然不用这么长代码,可以删除一半代码了。
MD,百度编辑器吃了 符号,我说呢。
楼主,代码核心大家都给你列出来,只是百度会吃 符,所以你测试时可能不正确,不会在这小问题上犹豫不决吧。 参考技术C <script>
var n=222; // 这个数可以任意改动
var rowLength=1; // 当前行的长度
var i=1; // 自动增长数(显示的数)
var str=""; // 最终结果
// 下一行是否有足够的数字
while(n-i >= rowLength)
// 循环添加当前行数字
for(var j=1; j<=rowLength; j++)
str+=" "+(i++)+" ";
str+=rowLength+"<br/>";
rowLength++;
document.write(str);
</script>
怎么用java打印金字塔
参考技术A public class work2public static void main(String[] args)
method(9);
//参数化控制行数
public static void method(int n)
for(int i = 1;i <= n;i++)
//每行打印的空格
for(int j = 1;j <= n - i;j++)
System.out.print(" ");
//每行打印的*
for(int k = 1;k <= 2 * i - 1;k++)
System.out.print("*");
System.out.println();
以上是关于怎样用JAVAscript编写数字金字塔的主要内容,如果未能解决你的问题,请参考以下文章