<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                >[danger] 什么是楊輝三角 --- > 二維數組結構, i行, 第j個的值, 為[i - 1][j - 1] + [i- 1][j] 的值 --- 是一種數學上的排列組合, 看圖 ![](https://img.kancloud.cn/cd/da/cdda14e9ff3526e4ae2439ced4751be0_541x317.png) >[danger]打印n行楊輝三角 --- 想清楚用什么樣的數據結構來組織數據 1. 二維數組, 裝載全是1的同結構的數據 ![](https://img.kancloud.cn/5e/bd/5ebde133992931eb06067df085ddd578_306x159.png) ~~~ let arr = []; for (let i = 0; i < 10; i++){ let brr = []; for (let j = 0; j <= i; j++){ brr.push(1); } arr.push(brr); } ~~~ 2. i代表行數, j代表個數, 根據規律知道.j的位置的值, 等于[ i - 1 ] [ j - 1 ] + [ i - 1 ][ j ] 2個位置值的和, 所以代碼如下 ~~~ let arr = []; for (let i = 0; i < 10; i++){ let brr = []; for (let j = 0; j <= i; j++){ brr.push(arr[i - 1][j - 1] + arr[i - 1][j]); // 這里 } arr.push(brr); } ~~~ 3. 上面報錯了, 因為i為0時, 減去1成負數了, 所以頂部和開頭和末尾都固定是1 ~~~ let arr = []; for (let i = 0; i < 10; i++){ let brr = []; for (let j = 0; j <= i; j++){ if (j === 0 || i === j) { // 開頭和末尾符合條件 brr.push(1); } else { brr.push(arr[i - 1][j - 1] + arr[i - 1][j]); } } arr.push(brr); } ~~~ ![](https://img.kancloud.cn/53/ca/53ca5c3ed2881c79c3970ff7ab3114c6_354x162.png) >[danger] 第m行, 第n個位置的值 ---- 思路看圖: ![](https://img.kancloud.cn/99/fd/99fd119be3ca7616ae635b28e7181f7e_260x240.gif) > 每次調用方法, 求 [ i - 1 ] [ j - 1 ] + [ i - 1 ][ j ] 的結果, 當遇到m === 1或者 n === m, 直接返回1即可 (為什么是1, 因為這次從1開始數, 而非數組下標0) ~~~ function fn(n, m) { // n行數, 第m個 if (m === 1 || n === m) { // m為開頭的肯定是1, n和m相等為最后一個元素為1 return 1; } else { return fn(n - 1, m - 1) + fn(n - 1, m); } } console.log(fn(7, 5)); // 15 ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看