排版题.输出排列成菱形的字母
Time Limit:1s Memory Limit:1000k
Total Submit:20789 Accepted:3992
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
C的求解及答案
#include <stdio.h>
#include <memory.h>
#include <stdlib.h>
int main()
{
int N, i, j, count;
int *p, *q;
count = 1;
while(scanf("%d", &N) > 0){
p = (int*)malloc((N + 1) * sizeof(int));
q = (int*)malloc((N + 1) * sizeof(int));
memset(p, 0, (N + 1) * sizeof(int));
memset(q, 0, (N + 1) * sizeof(int));
q[0] = p[0] = 1;
if(count > 1) putchar('/n');
printf("Case %d:/n1/n", count++);
for(i = 1; i < N; i++){
putchar('1');
for(j = 1; j <= i; j++){
q[j] = p[j] + p[j-1];
printf(" %d", q[j]);
}
memcpy(p, q, (N + 1) * sizeof(int));
putchar('/n');
}
free(q);
free(p);
}
return 0;
}
Memory: 32K
Time: 0ms