Loading

Problem N: 输出回字形

这个题如果用for循环直接做的话恐怕得做上几个小时吧,加上一点小技巧,用坐标法来写这个题。就像下面这样:

坐标原点不在矩形的角上,而在矩形的中心处,这只是算是一个技巧,理解起来好理解而已。

 

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
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;
}

 

posted @ 2019-01-29 17:20  Zhenng  阅读(507)  评论(1)    收藏  举报