用C++實現:楊輝三角形打印


問題描述

楊輝三角形又稱Pascal三角形,它的第i+1行是(a+b)i的展開式的系數。

它的一個重要性質是:三角形中的每個數字等於它兩肩上的數字相加。

下面給出了楊輝三角形的前4行:

   1

  1 1

 1 2 1

1 3 3 1

給出n,輸出它的前n行。

輸入格式

輸入包含一個數n。

輸出格式
輸出楊輝三角形的前n行。每一行從這一行的第一個數開始依次輸出,中間使用一個空格分隔。請不要在前面輸出多余的空格。
樣例輸入
4
樣例輸出
1
1 1
1 2 1
1 3 3 1
數據規模與約定
1 <= n <= 34。
 
思路:先觀察樣例,綜合楊輝三角性質,不難看出每一行首尾為1,中間的項為上一行相應兩個相鄰數的和。故單列首尾,中間項另外算。
 1 #include<iostream>
 2 using namespace std;
 3 int main(void)
 4 {
 5     int n;
 6     cin >> n;
 7     int(*arr)[34] = new int[n][34]; //創建二維數組
 8     for (int i = 0; i < n; i++)     //每行第一個數和最后一個數都是1
 9     {
10         arr[i][0] = 1;
11         arr[i][i] = 1;
12     }
13     for (int i = 2; i < n; i++)
14     {
15         for (int j = 1; j < i; j++)
16         {
17             arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];     //每行中間的數都是由上一行相鄰的兩個數相加而成
18         }
19     }
20     for (int i = 0; i < n; i++)
21     {
22         for (int j = 0; j <= i; j++)
23         {
24             cout << arr[i][j] << " ";
25         }
26         cout << endl;
27     }
28     delete[] arr;
29     return 0;
30 }

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM