与杨辉三角联系最紧密的是二项式乘方展开式的系数规律,即二项式定理。但是本文用递归的思想,用更易懂的方式解决这个复杂的数学计算问题。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
div {
/* 设置样式,让数字居中显示并加上好看的颜色 */
text-align: center;
color: whitesmoke;
background-color: chocolate;
}
</style>
</head>
<body>
<div>
<script>
function getTriangle([n, m]) {
//如果是第一行或者第一列,或者行数等于列数(即每一行最后一个) 值都是1
if (n == 1 || m == 1 || n == m) return 1
//利用递归的思想,每一行的每一个等于它前一行的前一列加上前一行的同一列
return getTriangle([n - 1, m - 1]) + getTriangle([n - 1, m])
}
//结合prompt和alert实现交互,防止用户捣乱,故做出判断
var num = parseInt(window.prompt("请输入你想看的行数"));
if (num > 0) {
//循环每一行
for (let i = 1; i <= num; i++) {
//循环每一列
for (let j = 1; j <= i; j++) {
document.write(getTriangle([i, j]) + " " + " " + " ")
}
//每一行写完后,加上换行符号
document.write("<br>")
}
} else {
alert("请输入合适的正整数")
}
</script>
</div>
</body>
</html>