輸入第一個整數,決定輸出圖形種類,
輸入第二個整數,決定輸出的行數。
..1
.121
12321
.121
..1
7531357
.53135
..313
...1
輸入說明:
每一組兩個數字,輸入-1結束所有輸入。
第一個正整數,1為菱形數字,2為三角形數字,其餘輸入均為不合法。
第二個正整數為行數 N, 第一種圖形合法輸入 N 為奇數,1<=N<=18,
第二種圖形合法輸入,1<=N<=5,其餘輸入均為不合法。
不合法輸入,則輸出 E。
輸出說明:
每個圖形之間需留空行
請參考範例輸出。
Sample Input1:
1 9
1 13
-1
Sample Output:
....1
...121
..12321
.1234321
123454321
.1234321
..12321
...121
....1
......1
.....121
....12321
...1234321
..123454321
.12345654321
1234567654321
.12345654321
..123454321
...1234321
....12321
.....121
......1
Sample Input2:
1 22
1 5
-1
Sample Output:
E
..1
.121
12321
.121
..1
Sample Input3:
2 5
2 4
2 2
2 12
-1
Sample Output:
975313579
.7531357
..53135
...313
....1
7531357
.53135
..313
...1
313
.1
E
#include <stdio.h>
int p1(int n){
int i=1;
while(n>=i){
printf(".");
n--;
}
}
int p2(int n){
int i=1;
while(i<=n){
printf("%d",i);
i++;
}
}
int p3(int n){
int i=1;
while(n>=i){
printf("%d",n);
n--;
}
}
int p4(int n){//下半部點
int i=1;
while(i<=n){
printf(".");
i++;
}
}
int p5(int n){
int i=1;
while(n>=1){
printf("%d",i);
i++;
n--;
}
}
int p6(int n){
int i=1;
while(n>=1){
printf("%d",n);
n--;
}
}
int p7(int n){
int i=1;
while(n>=i){
printf("%d",n);
n-=2;
}
}
int p8(int n){
int i=3;
while(i<=n){
printf("%d",i);
i+=2;
}
}
int main(){
int a=0,n=0,i,j,b;
while(1){
scanf("%d",&a);
if(a==-1){
break;
}
scanf("%d",&n);
if(a==1 && n>=1 && n<=18){
b=n/2;
for(i=1;i<=n/2+1;i++){
p1(b);
p2(i);
if(i>1){
p3(i-1);
}
printf("\n");
b--;
}
b=n/2;
for(j=1;j<=n/2;j++){
p4(j);
p5(b);
b--;
p6(b);
printf("\n");
}
}
else if(a==2 && n>=1 && n<=5){
b=2*n-1;
for(i=1;i<=n;i++){
if(i>1){
p4(i-1);
}
p7(b);
p8(b);
b-=2;
printf("\n");
}
}
else{
printf("E\n");
}
}
}