HDU-2032-楊輝三角

Water_Coder發表於2020-11-30

楊輝三角

還記得中學時候學過的楊輝三角嗎?具體的定義這裡不再描述,你可以參考以下的圖形:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
Input
輸入資料包含多個測試例項,每個測試例項的輸入只包含一個正整數n(1<=n<=30),表示將要輸出的楊輝三角的層數。
Output
對應於每一個輸入,請輸出相應層數的楊輝三角,每一層的整數之間用一個空格隔開,每一個楊輝三角後面加一個空行。
Sample Input

2 3

Sample Output
1
1 1

1
1 1
1 2 1

思路:

公式:num = (i - j) / j * num;
優化:num = (i - j) *num / j;

程式碼:

#include<iostream>
using namespace std;
int main()
{
	int n;
	while(cin>>n)
	{
		int num=1;
		printf("1\n");
		for(int i=2;i<=n;num=1,i++)
		{
			printf("1 ");
			for(int j=1;j<=i-2;j++)
			{
				num=(i-j)*num/j;
				printf("%d ",num);
			}
			printf("1\n");
		}
		printf("\n");
	}
	return 0;
}

原題連結:
vjudge
HDU

相關文章