HDU 1256 畫8
畫8
Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other)
Total Submission(s) : 2 Accepted Submission(s) : 2
Problem Description
誰畫8畫的好,畫的快,今後就發的快,學業發達,事業發達,祝大家發,發,發.
Input
輸入的第一行為一個整數N,表示後麵有N組數據. 每組數據中有一個字符和一個整數,字符表示畫筆,整數(>=5)表示高度.
Output
畫橫線總是一個字符粗,豎線隨著總高度每增長6而增加1個字符寬.當總高度從5增加到6時,其豎線寬度從1增長到2.下圈高度不小於上圈高度,但應盡量接近上圈高度,且下圈的內徑呈正方形. 每畫一個"8"應空一行,但最前和最後都無空行.
Sample Input
2
A 7
B 8
Sample Output
AA
AA AA
AA AA
AA
AA AA
AA AA
AA
BBB
BB BB
BB BB
BBB
BB BB
BB BB
BB BB
BBB
Source
浙江工業大學第四屆大學生程序設計競賽
#include<stdio.h> int F(int n) { if(n==7) return 5; else return 5+(n-7)/2; } int main() { int i,j,n,num,k,x1,x2,l,q=5,p,u1,u2; char str; scanf("%d",&n); while(n--) { p=2; scanf("\n%c %d",&str,&num); p=p+(num-6)/6; q=F(num); j=num-q; k=(num-3)/2; if((num-3)%2==0) { x1=k;x2=k; } else if((num-3)%2!=0) { x1=k;x2=k+1; } if(num!=6&&num!=5) { for(u1=0;u1<p;u1++) printf(" "); for(i=0;i<j;i++) printf("%c",str); puts(""); for(i=0;i<x1;i++) { for(u1=0;u1<p;u1++) printf("%c",str,str); for(l=0;l<j;l++) printf(" "); for(u2=0;u2<p;u2++) printf("%c",str,str); puts(""); } for(u1=0;u1<p;u1++) printf(" "); for(i=0;i<j;i++) printf("%c",str); puts("");; for(i=0;i<x2;i++) { for(u1=0;u1<p;u1++) printf("%c",str,str); for(l=0;l<j;l++) printf(" "); for(u2=0;u2<p;u2++) printf("%c",str,str); puts(""); } for(u1=0;u1<p;u1++) printf(" "); for(i=0;i<j;i++) printf("%c",str); puts(""); } else if(num==6) { printf(" "); for(i=0;i<2;i++) printf("%c",str); puts(""); for(i=0;i<1;i++) { printf("%c%c",str,str); for(l=0;l<2;l++) printf(" "); printf("%c%c",str,str); puts(""); } printf(" "); for(i=0;i<2;i++) printf("%c",str); puts("");; for(i=0;i<2;i++) { printf("%c%c",str,str); for(l=0;l<2;l++) printf(" "); printf("%c%c",str,str); puts(""); } printf(" "); for(i=0;i<2;i++) printf("%c",str); puts(""); } else if(num==5) { printf(" "); for(i=0;i<1;i++) printf("%c",str); puts(""); for(i=0;i<1;i++) { printf("%c",str,str); for(l=0;l<1;l++) printf(" "); printf("%c",str,str); puts(""); } printf(" "); for(i=0;i<1;i++) printf("%c",str); puts("");; for(i=0;i<1;i++) { printf("%c",str,str); for(l=0;l<1;l++) printf(" "); printf("%c",str,str); puts(""); } printf(" "); for(i=0;i<1;i++) printf("%c",str); puts(""); } if(n) puts(""); } return 0; }
最後更新:2017-04-03 12:54:58