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
---------------------
/*
此解答已通过TongJi编译并Accepted
Result Memory Time Language Date
Accepted 44k 2ms C++ 2006-05-07 18:37:41
zhouyinhui
*/
#include<stdio.h>
#include<malloc.h>
#define MAX 35
int main()
{
int n;
int caseNum = 0;
while(scanf("%d",&n) != EOF)
{
caseNum++;
if(caseNum != 1)
{
printf("\n");
}
printf("Case %d:\n",caseNum);
int i;
int j;
int arr[MAX][MAX]= {{0}};
for(i=0; i<n; i++)
{
arr[i][0] = 1;
}
for(i=1; i<n; i++)
{
for(j=1; j<n; j++)
{
arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
}
}
for( i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
if(arr[i][j]!=0)
{
if(j !=i)
{
printf("%d ",arr[i][j]);
}else
{
printf("%d",arr[i][j]);
}
}
}
printf("\n");
}
}
return 0;
}