問題描述 楊輝三角形又稱Pascal三角形,它的第i+1行是(a+b)i的展開式的系數。 它的一個重要性質是:三角形中的每個數字等于它兩肩上的數字相加。
要求:給出n,輸出它的前n行。
輸入格式:輸入包含一個數n。
輸出格式:輸出楊輝三角形的前n行。每一行從這一行的第一個數開始依次輸出,中間使用一個空格分隔。請不要在前面輸出多余的空格。
樣例輸入 4 樣例輸出 1 1 1 1 2 1 1 3 3 1
算法思路: new一個新的二維數組**arr并申請空間:
//動態開辟空間int **arr = new int*[n]; //開辟行for(int i = 0; i < n; i++)arr[i] = new int[i]; //開辟列,用不到n個,只需在i行開辟i個即可考慮會出現的情況:1、楊輝三角的第i行的第0個和第i-1應當是1; 2、其余元素均為其肩上的兩個數之和
C++代碼實現:
#include<iostream>using namespace std;void yanghui(int n){ int **arr = new int*[n]; for(int i = 0; i < n; i++){ arr[i] = new int[i]; } for(int i = 0; i < n; i++){ for(int j = 0; j <= i; j++){ if(j == 0||j == i){ arr[i][j] = 1; } else arr[i][j] = arr[i-1][j] + arr[i-1][j-1]; cout<<arr[i][j]<<" "; } cout<<endl; }}int main(){ int n; cin>>n; yanghui(n);}
新聞熱點
疑難解答