版权声明:本文章博主原创,希望对你有所帮助。 https://blog.csdn.net/sakenc/article/details/90764716
利用浏览器打印一个杨辉三角
案例介绍
① 设计打印输出一个行为自定义的杨辉三角形
② 找出杨辉三角形的特点
案例设计
① 数组的声明和使用
② 使用for循环来对数组进行赋值和输出
③ 根据幂数的增大,适当调整标签的宽度
实施方案
① 输入接口,用来接收用户设置幂数
② 第一列和对角线值为1,其它列的值是其正上方元素和其左上方元素之和。
③ 对数组进行赋值并打印输出
<script>
//【示例1】数学上常用的阶乘函数、幂函数和斐波那契数列。以阶乘函数为例,对于这种递归定义的函数,可以使用递归过程来求解:
var f = function (x) {
if (x < 2)
return 1; // 递归终止条件
else
return x * arguments.callee(x - 1); // 递归调用过程
}
alert(f(6)); // 返回6的阶乘值为720
//【示例2】文档树就是一种递归的数据结构,下面使用递归运算来计算指定节点内所包含的全部节点数。
function f(n) { // 统计指定节点及其所有子节点的个数
var l = 0; // 初始化计数变量
if (n.nodeType == 1) // 如果是元素节点,则计数
l++; // 递加计数器
var child = n.childNodes; // 获取子节点集合
for (var i = 0; i < child.length; i++) { // 遍历所有子节点
l += f(child[i]); // 递归运算,统计当前节点下所有子节点数
}
return l; // 返回节点数
}
window.onload = function () { // 绑定页面初始化事件处理函数
var body = document.getElementsByTagName("body")[0];
// 获取当前文档中body节点句柄
alert(f(body)) // 返回2,即body和script两个节点
}
function f(n, a, b, c) {
if (n == 1) // 特殊处理
document.write(a + " → " + c + "<br />");
// 输出显示,直接让参数a移给c
else {
f(n - 1, a, c, b); // 递归调用函数,调整参数顺序,让参数a移给b
document.write(a + " → " + c + "<br />");
// 输出显示
f(n - 1, b, a, c);
// 如果当n等于1时,调整参数顺序,让参数b移给c
}
}
f(3, "A", "B", "C"); // 调用函数
</script>