- 题目描述:
-
把一个个大小差一圈的筐叠上去,使得从上往下看时,边筐花色交错。这个工作现在要让计算机来完成,得看你的了。
- 输入:
-
输入是一个个的三元组,分别是,外筐尺寸n(n为满足0<n<80的奇整数),中心花色字符,外筐花色字符,后二者都为ASCII可见字符;
- 输出:
-
输出叠在一起的筐图案,中心花色与外筐花色字符从内层起交错相叠,多筐相叠时,最外筐的角总是被打磨掉。叠筐与叠筐之间应有一行间隔。
- 样例输入:
-
11 B A 5 @ W
- 样例输出:
-
AAAAAAAAA ABBBBBBBBBA ABAAAAAAABA ABABBBBBABA ABABAAABABA ABABABABABA ABABAAABABA ABABBBBBABA ABAAAAAAABA ABBBBBBBBBA AAAAAAAAA @@@ @WWW@ @W@W@ @WWW@ @@@
#include "stdio.h" char buf[80][80]; void Func(int x,int m,char ch){ int i,j; for(i=x;i<=x+m-1;i++) for(j=x;j<=x+m-1;j++) buf[i][j]=ch; } int main(int argc, char* argv[]) { int i,j,n; char ch1,ch2,temp1,temp2;; while(scanf("%d %c %c",&n,&ch1,&ch2)!=EOF){ if((n-1)%4==0){ temp1=ch1; temp2=ch2; } else{ temp1=ch2; temp2=ch1; } for(i=0;i<=n/2-1;i++){ if(i%2==0) Func(i,n-2*i,temp1); else Func(i,n-2*i,temp2); } buf[n/2][n/2]=ch1; buf[0][0]=buf[0][n-1]=buf[n-1][0]=buf[n-1][n-1]=' '; for(i=0;i<=n-1;i++){ for(j=0;j<=n-1;j++) printf("%c",buf[i][j]); printf(" "); } } return 0; }
- 题目描述:
-
在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,
或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。
- 输入:
-
每个案例的输入如下:
有2×n+1行输入:第一行是要处理的数组的个数n;
对其余2×n行,第一行是此数组的元素个数k(4<k<80),第二行是k个整数,每两个整数之间用空格分隔。
- 输出:
-
每个案例输出为n行:每行对应于相应数组的所有极值点下标值,下标值之间用空格分隔。
- 样例输入:
-
3 10 10 12 12 11 11 12 23 24 12 12 15 12 12 122 112 222 211 222 221 76 36 31 234 256 76 76 15 12 14 122 112 222 222 222 221 76 36 31 234 256 76 73
- 样例输出:
-
0 7 2 3 4 5 6 10 12 0 2 3 10 12 14
- 来源:
- 2008年北京大学方正实验室计算机研究生机试真题
-
#include "stdio.h" int main(int argc, char* argv[]) { int n,i,j,k; int buf[1000][81]; int length[1000]; while(scanf("%d",&n)!=EOF){ for(i=0;i<=n-1;i++){ scanf("%d",&k); length[i]=k; for(j=0;j<=k-1;j++) scanf("%d",&buf[i][j]); } for(i=0;i<=n-1;i++){ int flag=0; if(buf[i][0]!=buf[i][1]){ printf("0"); flag=1; } for(j=1;j<=length[i]-2;j++) if((buf[i][j]>buf[i][j-1]&&buf[i][j]>buf[i][j+1])||(buf[i][j]<buf[i][j-1]&&buf[i][j]<buf[i][j+1])){ if(j==1&&flag==1) printf(" %d",j); else if(j==1&&flag==0) printf("%d",j); else if(j>1&&flag==1) printf(" %d",j); else if(j>1&&flag==0){ printf("%d",j); flag=1; } } if(buf[i][length[i]-1]!=buf[i][length[i]-2]) printf(" %d",length[i]-1); printf(" "); } } return 0; }