当前位置:编程学习 > JS >>

谁能帮忙用JavaScript编写一个杨辉三角?

谁能帮忙用javascript编写一个杨辉三角,根据用户输入的所需杨辉三角的行数,在页面显示出杨辉三角.但是格式要如下:

1

1 2

1 3 4

1 4 7 8

1 5 11 15 16

....

我自己只能编写出下面这种的:

1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1

上面第一种形式我实在是编不出来了,希望哪位高手能帮忙下!谢谢啦!

补充:还有就是输入的脚本要如下图,哪位高手大侠帮帮忙!!!谢谢啦!!!

答案:写了一个~~

代码如下

--------------------------------

<div id="sd"></div>
<script type="text/javascript">
function triangle(n){
var matrix=[];
/*矩阵初始化*/
for(var i=0;i<n;i++){
matrix[i]=[];
for(var j=0;j<i+1;j++){
matrix[i][j]=(j==0?1:(i==j?((matrix[i][j-1]||1)+1):((matrix[i-1][j]||1)+(matrix[i-1][j-1]||1))));
}
}
/*矩阵输出*/
var output="";
for(var i=0;i<n;i++){
for(var j=0;j<i+1;j++){
output+=matrix[i][j]+" ";
}
output+="<br/>";
}
return output;
}
function dodo(){
var n=document.getElementById("sv")&&document.getElementById("sv").value||5;
var o=document.getElementById("sd");
o.innerHTML=triangle(n);
o=null;
}
</script>
<input type="text" value="5" id="sv"></input>
<input type="button" value="生成" id="ss" onclick="dodo()";></input>

第一种是,顶上的数加顶上左边的数,然后最后一个数等于倒数第二个数加一么?

function pint(n)
{
var b=new Array();
n=n+1;
b[0]=1;
b[1]=2;
for (var i=2;i<n;i++)
{
b[i]=0;
}
for(var i=1;i<n;i++)
{
var a=Array ();
if(i==1)
{
document .write(i);
document.write("<br />");
}
else
{
if(i==2)
{
document .write (1+" "+2);
document.write("<br />");
}
else
{
for(var j=0;j<i;j++)
{
if(j==0)
{
a[j]=1;
}
else
{
if(j==i-1)
{
a[j]=a[0]+a[i-2];
for(var k=0;k<a.length ;k++)
{
b[k]=a[k];
document .write (a[k]+" ");

}
}
else
{
a[j]=b[j-1]+b[j];
}
}

}
document.write("<br />");
}
}
}
}

n为有多少行,算法自己慢慢去拙磨

满意的请给五星

上一个:求一个javascript脚本写的动态时钟
下一个:学Javascript 好还是直接学 jquery好..?

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,