#import <Foundation/Foundation.h>
#define N 3;
int main(int argc, const char * argv[])
{
int n = 0 ;
printf("请输入高N:");
scanf("%d", &n);
int a[999][999] = { 0 } ;
int m = n / 2; // 半高
for (int i = 0 ; i < m; i++)
{
for (int j = 0 ; j <= i; j++)
{
if ((j + 1) % 2 == 1)
{
a[i][j] = 1; // 标记*
//printf("*");
}
else
{
a[i][j] = 2; // 标记#
//printf("#");
}
}
}
for (int i = 0 ; i < m; i++)
{
for (int j = n - 1 ; j >= n - 1 - i; j--)
{
a[i][j] = a[i][n - 1 - j];
}
}
for (int i = 0 ; i < m; i++)
{
for (int j = 0; j < 2 * ( m - i - 1 ) + 1; j++)
{
if (( i + 1) % 2 == 1)
{
a[i][j+i+1] = 1;
}
if (( i + 1) % 2 == 0)
{
a[i][j+i+1] = 2;
}
}
}
for (int i = m + 1; i < n; i++)
{
for (int j = 0 ; j < n; j++)
{
a[i][j] = a[n-1-i][j];
}
}
if (n % 2 != 0)
{
for (int i = m + 1; i < n; i++)
{
for (int j = 0 ; j < n; j++)
{
a[i][j] = a[n-1-i][j];
}
}
for (int j = 0 ; j < n; j++)
{
if ((j + 1) % 2 == 1)
{
a[n / 2][j] = 1; // 标记*
}
else
{
a[n / 2][j] = 2; // 标记#
}
}
}
else
{
for (int i = m ; i < n; i++)
{
for (int j = 0 ; j < n; j++)
{
a[i][j] = a[n-1-i][j];
}
}
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
if (a[i][j] == 1 )
{
printf("*");
}
if (a[i][j] == 2 )
{
printf(" ");
}
}
printf("\n");
}
return 0;
}
输入一个小于1000的正整数,输出一个矩形 层层嵌套
例如输入3
结果如下
***
* *
***
输入10
**********
* *
* ****** *
* * * *
* * ** * *
* * ** * *
* * * *
* ****** *
* *
**********