2 条题解
-
0
#include<stdio.h> int main() { int N; scanf("%d",&N); while(N--){ int n; scanf("%d",&n); n=2*n+1; int i,j,k; char count='A'-1; for(i=1;i<=(n+1)/2;i++) { for( j=1;j<=(n+1)/2-i;j++) { printf(" "); } for( k=1;k<=2*i-1;k++) { if(k<=i) { count++; printf("%c",count); } else if(k>=i+1) { count--; printf("%c",count); } } count='A'-1; printf("\n"); } for(i=(n+1)/2+1;i<=n;i++) { for( j=1;j<=i-(n+1)/2;j++) { printf(" "); } for( k=1;k<=2*(n+1-i)-1;k++) { if(k<=n-i+1) { count++; printf("%c",count); } else if(k>=n-i+2) { count--; printf("%c",count); } } printf("\n"); count='A'-1; } } }
-
0
#include <stdio.h> int m[100][100]; //pand函数负责单项运算输出,主函数负责循环 void pand () { //进行标记 int n,M,N,i,j,J; char a; scanf ("%d",&M); n=M+1; N=2*M+1; J=M+1; for (i=1;i<=N;i++) { for (j=J;j<=N-J+1;j++) { m[j][i]=1; } if (i<=M) J--; else J++; } //输出 for (i=1;i<=N;i++) { //A,B,C......的ASCII值相邻 ,故在char时A+1=B; a='A'; for (j=1;j<=N;j++) { if (m[j][i]==1) { printf ("%c",a); if (j<=M) a++; else a--; } else printf (" "); } printf ("\n"); } //下面进行数组重置 for (i=1;i<=N;i++) { for (j=1;j<=N;j++) { m[i][j]=0; } } } int main() { int NN,l; scanf ("%d",&NN); for (l=1;l<=NN;l++) { pand (); } return 0; }
- 1
信息
- ID
- 267
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 7
- 标签
- (无)
- 递交数
- 278
- 已通过
- 65
- 上传者