#C08L06P04. C08.L06.递归基础与递归算法.程序填空3.杨辉三角(递归)

C08.L06.递归基础与递归算法.程序填空3.杨辉三角(递归)

题目描述

计算并输出杨辉三角。

输入格式

一个整数 n (1 <=n <= 20 )

输出格式

杨辉三角数字

样例

10
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1

程序填空

#include <iostream>
using namespace std;
//杨辉三角形的特征就是,一个数等于两肩数之和
long long PascalsTriangle(int x, int y) //计算第 x 行,第 y 列的杨辉三角数字 
{
	
	if(x==1&&y==1) //递归基,最顶端 
		return 填空(1);
	else if(y>x)  //递归基,三角形的右侧 
		return 填空(2);
	else if(x==y)  //递归基,右边界
		return 填空(3);
	else if(y==1) //递归基,左边界
		return 填空(4);
	else  //二分递归, 按照两肩的位置进行递归
		return 填空(5) + 填空(6);	
}

int main()
{
	int n,i,j;
	cin>>n;
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=i;j++)
			cout<<PascalsTriangle(i,j)<<" ";
		printf("\n");
	}

	return 0;
}

填空(1):{{ input(1) }}

填空(2):{{ input(2) }}

填空(3):{{ input(3) }}

填空(4):{{ input(4) }}

填空(5):{{ input(5) }}

填空(6):{{ input(6) }}