递归思路:算法清晰,思路简洁,代码量少,但执行速度缓慢。
function c(x,y){
if((y==1)||(y==x+1)) return 1;
return c(x-1,y-1)+c(x-1,y);
}
for(var i=0;i<=n;i++){
for(var j=1;j<i+2;j++){
print(c(i,j));
}
print("<br />");
}
优化设计:
var a1=[1,1];
var a2=[1,1];
for(var i=2;i<=n;i++){
a2[0] =1;
for(var j=1;j<i-1;j++) {
a2[j] = a1[j - 1] + a1[j];
}
a2[j]=1;
for(var k=0;k<=j;k++){
a1[k]=a2[k];
}
}
设计输出数表
<script>
function print(v){
if(typeof v=="number"){
var w=40;
if(n>30)w=(n-30+40);
var s = '<span style="padding:4px 2px;display: inline-block;text-align: center;width: '+w+'px;">'+v+'</span>';
document.write(s);
}
else
{
document.write(v);
}
}
var n=prompt("请输入幂数:",9);
n=n-0;
var t1=new Date();
var a1=[1,1],a2=[1,1];
print('<div style="text-align: center;">');
print(1);
print("<br />");
for (var i=2;i<=n;i++){
print(1);
for(var j=1;j<i-1;j++){
a2[j]=a1[j-1]+a1[j];
print(a2[j]);
}
a2[j]=1;
for(var k=0;k<=j;k++){
a1[k]=a2[k];
}
print(1);
print("<br />");
}
print("</div>");
var t2=new Date();
print("<p style='text-align: center;'>耗时为(毫秒):"+(t2-t1)+ "</p>");
</script>