javascript 实现杨辉三角

xiaoxiao2021-02-28  35

杨辉三角, 如图

问题:用js打印一个杨辉三角

规律:通过观察, 得出如下规律

    1) 每一行设为m行, 每行上面的某个元素, 设为第n个元素

    2) 每一行上面, 第一个元素为1, 最后一个元素为1

    3) 第m行上面, 有m个元素

    4) 第m行上面的第n个元素的值, 等于第m-1行上面第n个元素与第m-1行上面第n-1个元素的值的和

        用排列组合公式表示为:C(m, n) = C(m-1, n) + C(m -1, n -1)

代码实现:

// 假设当前行为第m行, 当前元素为第n个元素 function combine (m, n) { if (n == 0) {           // 每行第0个元素为1 return 1; } else if (m == n) {    // 每行最后一个元素为1 return 1; } else {                // 其他情况用公式实现 return combine(m - 1, n) + combine(m - 1, n - 1); } } function put (len) { for (let i = 0; i < len; i++) {      // 遍历每一行 for (let j = 0; j <= i; j++) {    // 遍历每行上面每个元素 document.write(combine(i, j) + ' '); } document.write('<br/>'); } } put(5);
转载请注明原文地址: https://www.6miu.com/read-2622244.html

最新回复(0)