杨辉三角

本是道没什么意思的题,不过用结构直接复制数组挺有意思的,挂在这里
杨辉三角,其特点是两个腰上的数字都为1,其它位置上的数字是其上一行中与之相邻的两个整数之和。
如下图,就是一个6层的杨辉三角
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
输入
输入数据包含多个测试实例,每个测试实例的输入只包含一个正整数n(1<=n<=50),表示将要输出的杨辉三角的层数。
输出
对应于每一个输入,请输出相应层数的杨辉三角,每一层的整数之间用一个空格隔开,每一个杨辉三角后面加一个空行。

include <stdio.h>

struct C
{
	long long a[60];
};
struct C C_1,C_2;

int main()
{
	int n;
	while((scanf("%d",&n))!=EOF)
	{
		int m=1;
		
		C_1.a[0]=1;
		for(m;m<=n;m++)
		{
			C_2.a[0]=1;
			printf("%ld ",C_2.a[0]);
			for(int i=1;i<m-1;i++)
			{
				C_2.a[i]=C_1.a[i-1]+C_1.a[i];
				printf("%ld ",C_2.a[i]); 
			}
			C_2.a[m-1]=1;
			if(m>1) printf("%ld",C_2.a[m-1]);
			C_1=C_2;
			printf("\n");
		}
		printf("\n");
	}	
}
posted @ 2021-01-15 00:04  empty_thought  阅读(976)  评论(0)    收藏  举报