算法提高 套正方形
时间限制:1.0s 内存限制:256.0MB
问题描述
给定正方形边长width,如图按规律输出层层嵌套的正方形图形。
注意,为让选手方便观看,下图和样例输出均使用“_”代替空格,请选手输出的时候使用空格而不是“_”。
width=6:
******
*____*
*_**_*
*_**_*
*____*
******
输入格式
仅一行一个整数width。
输出格式
按规律输出图形,不要输出多余空格。
样例输入
10
样例输出
**********
*________*
*_******_*
*_*____*_*
*_*_**_*_*
*_*_**_*_*
*_*____*_*
*_******_*
*________*
**********
数据规模和约定
width满足width=4n+2,n为正整数。
且width<=50。
#include <stdio.h>
int main()
{
int width;
char paint[52][52] = { 0 };
scanf("%d", &width);
for (int i = 0; i < width; ++i)
for (int j = 0; j < width; ++j)
paint[i][j] = ' ';
for (int k = 0; k < width / 2; k += 2)
{
for (int i = k; i < width - k; ++i)
{
paint[i][k] = '*';
paint[i][width - k - 1] = '*';
}
for (int j = k; j < width - k; ++j)
{
paint[k][j] = '*';
paint[width - k - 1][j] = '*';
}
}
for (int i = 0; i < width; ++i)
printf("%s\n", paint[i]);
return 0;
}