题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6330
难点主要是要找出长、宽、高和图形之间的规律,解决了这个就没啥问题了
#include<cmath> #include<cstdio> #include<iostream> using namespace std; int main() { int t,a,b,c; scanf("%d",&t); while(t--) { scanf("%d%d%d",&a,&b,&c); for(int i=0;i<2*b+2*c+1;i++) { for(int j=0;j<2*b+2*a+1;j++) { int h=i-(2*c); int m=((2*b-i)>0)?(2*b-i):0; if(j<2*b-i) printf("."); else if(j<2*a+1+m) { if(i%2==0) { if(j!=2*a+m) { printf("+-"); j++; } else printf("+"); } else { if(j!=2*a+m) { if(i>2*b) printf("|."); else printf("/."); j++; } else { if(i>2*b) printf("|"); else printf("/"); } } } else if(j<2*a+1+2*b-h) { if(i%2==0) { if(j%2==0) printf("+"); else printf("."); } else { if(j%2==0) printf("|"); else printf("/"); } } else printf("."); } printf("\n"); } } }