题目描述
输入一个整数 n 输出 n 行由 + 和 . 组成的正方形,其中最外边一圈的全是+,第二圈全是 . ...... 对于第 i 圈,如果i是奇数,那么全是+,否则全是.
输入
一行,一个整数n。 2≤n≤100
输出
n行,为满足题目要求的正方形。
样例输入
10
样例输出
++++++++++
+........+
+.++++++.+
+.+....+.+
+.+.++.+.+
+.+.++.+.+
+.+....+.+
+.++++++.+
+........+
++++++++++
代码实现与解析
#include<iostream>
#include<string.h>
using namespace std;
int main()
{
int n,i,j,q=9999;
scanf("%d",&n);//正方形边长
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)//在循环出判断出:所在位置距离边上的距离是多少,
//找出最近的距离就是代表第几圈
{q=99999;
if(q>j) q=j;//距离上端的距离
if(q>i) q=i;//距离下端的距离
if(q>n-(i+1)) q=n-i-1;//距离上端的距离
if(q>n-j-1) q=n-j-1;//距离下端的距离
if(q%2==0) printf("+");//偶数圈输出‘+’
if(q%2==1) printf(".");//奇数圈输出‘.’
}
printf("\n");
}
return 0;
}