__无悔
2017-03-20 12:37
用javascript输出杨辉三角 但是要让它倒着输出 该这样做
这是我的实路 求大神看看 哪里错了 谢谢 :
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>倒三角</title>
</head>
<body>
<script type="text/javascript">
var yang = new Array(); //定义第一个数组
for(var i=0;i<10;i++){ //i代表行,这里是行的循环
if(i == 0){ //当i等于0,也就是数组的第一个输出项
yang.push(1); //给数组的第一个输出项输出1
}
else if(i == 1){ //当i不等于1时 再次进行判断 判断:当i等于1,也就是数组的第二个输出项
yang = new Array(); //重置数组 我也不知道为啥要重置
yang.push(1); //给数组的第二个输出项第一列输出1
yang.push(1); //给数组的第二个输出项第二列输出1
}
else{
var yang2=new Array(); //添加一个数组
yang2.push(1); //给第二个数组第一个输出项输出
for(var j = 0;j<yang.length - 1; j++){ /*循环j代表列 初始为0 循环条件是第一个数组的输出长度减一
循环步长是自增1*/
yang2.push(yang[j] + yang[j+1]);/*为第二个数组增加一个数*/
}
yang2.push(1); //为第二个数组的末端增加一个数 这个数是1
yang = new Array(); //将第一个数组进行初始化
yang = yang2; //将第二个数组的值赋值给第一个数组
}
console.log(yang.join());//输出控制台
}
<!--倒三角思路:能不能将正三角输出在控制台 将倒三角输出在网页页面???-->
var dao=new Array(); //定义一个新的数组
dao=yang; //将第一个数组 赋值给 新的数组 让新的这个数组的值 变成第一个数组的最后一行的值
for(var y=0;y<10;y++){ //dao 数组的行
var dao2 = new Array(); //第二个数组
for(var h=0;h <= i;h++){ //第二个数组的行 也就是第一个数组的列
if(h == 0){ //当j 即第二个数组的序列等于 0 时
dao.push(1); //push 一个1
}
else{ //否则
if(dao[h]-dao[h-1] > 0){ //当这列的值 减去上一列的值 不为大于0时
dao.push(dao[h]-dao[h-1]); //就输出这个数
}
else{ //否则
dao.push(dao[h]-dao[h+1]); //就用这列减去下列的值 并输出这个数
}
}
}
document.write(dao.join(" ")+"<hr>");
}
</script>
</body>
</html>
还没有人回答问题,可以看看其他问题
JavaScript进阶篇
468196 学习 · 21891 问题
相似问题
回答 1
回答 2