这个题如果用for循环直接做的话恐怕得做上几个小时吧,加上一点小技巧,用坐标法来写这个题。就像下面这样:
坐标原点不在矩形的角上,而在矩形的中心处,这只是算是一个技巧,理解起来好理解而已。
#include#include #include int main(){ int n,i,j,k; scanf("%d",&n); for(i=-(2*n-1);i<=2*n-1;i++){ for(j=-(2*n-1);j<=2*n-1;j++){ if(i==0&&j==0){ putchar(' '); } else if(abs(i)%2!=0&&abs(j)<=abs(i)){ putchar('@'); } else if(abs(j)%2!=0&&abs(i)<=abs(j)){ putchar('@'); } else{ putchar(' '); } } putchar('\n'); } return 0;}