Problem
输出杨辉三角
Input
本题有多组测试数据,每组数据仅含一个整数N(N不大于34)。一组数据独占一行。
Output
对于每一组数据,先输出一个
Case #:
其中#号代表第#组数据。接下来输出一个由数字组成的杨辉三角。一行中的数字之间用一个空格分开。行尾不要有多余的空格。
两组数据之间空开一行。
Sample Input
6
3
Sample Output
Case 1:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
Case 2:
1
1 1
1 2 1
Solution:
#include <stdio.h>
void Yanghui(int n);
int main()
{
int num[34]={0},n=0,i;
while (scanf("%d",&num[n])>0) {
n++;
}
for (i=0;i<n;i++) {
if (i>0)
printf("/n");
printf("Case %d:/n",i+1);
Yanghui(num[i]);
}
return 0;
}
void Yanghui(int n)
{
int a[34]={1,0};
int b[34]={1,0};
int i,j;
for (i=0;i<n;i++) {
for (j=0;j<i;j++) {
printf("%d ",a[j]);
}
printf("%d/n",a[j]);
for (j=1;j<34;j++) {
b[j]=a[j]+a[j-1];
}
for (j=1;j<34;j++) {
a[j]=b[j];
}
}
}