Input
输入数据包含多个测试实例,每个测试实例的输入只包含一个正整数n(1<=n<=30),表示将要输出的杨辉三角的层数。
Output
对应于每一个输入,请输出相应层数的杨辉三角,每一层的整数之间用一个空格隔开,每一个杨辉三角后面加一个空行。
Sample Input
2 3
Sample Output
1 1 1
1 1 1 1 2 1
乍一看觉得很难办,其实只要把整个杨辉三角写好,他要多少层,你就打印多少层。
代码如下:
#include <stdio.h> int a[35][35]; int main() { int i,j,n; for(i = 0;i < 35;i++) for(j = 0;j <= i;j++) a[i][j] = 1; for(i = 2;i < 35;i++) for(j = 1;j < i;j++) a[i][j] = a[i-1][j-1]+a[i-1][j]; while(scanf("%d",&n) != EOF){ for(i = 0;i < n;i++) for(j = 0;j <= i;j++) printf(j==i ? "%d\n" : "%d ",a[i][j]); printf("\n"); } return 0; }
为了避免越界的风险,通常将数组的大小开大一点,应该是ACMer们的基本常识了吧。
后期再将那个比较好看的(初中书上的那种)杨辉三角试着打印出来。希望不鸽。