/******************************
作者:cncoderalex
博客:http://blog.csdn.net/cncoderalex
*******************************/
#include <iostream>
#include <memory>
#include <string>
#include <algorithm>
using namespace std;
#define MAXN 20
char Ary[MAXN][MAXN];
void FoldBasket(int n, char a, char b)
{
int x, y;
//确定层数
int Layers = n / 2 + 1;
memset(Ary, ' ', sizeof(Ary));
for (int i = 1; i <= Layers; i++)
{
//确定中心
x = y = n / 2 + 1;
x -= i - 1;
y -= i - 1;
char c = i % 2 ? a : b;
int BorderLen = 2 * i - 1;
//从左上到右上 从左上到左下 从右上到右下 从左下到右下
for (int j = 0; j < BorderLen; j++)
{
Ary[x][y + j] = c;
Ary[x + j][y] = c;
Ary[x + j][y + BorderLen - 1] = c;
Ary[x + BorderLen - 1][y + j] = c;
}
}
if (1 != n)
{
Ary[1][1] = ' ';
Ary[1][n] = ' ';
Ary[n][1] = ' ';
Ary[n][n] = ' ';
}
}
void PrintAry(int n)
{
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
{
printf("%c", Ary[i][j]);
}
printf("\n");
}
}
int main()
{
printf("http://blog.csdn.net/cncoderalex");
printf("\n");
int n;
char a, b;
while (scanf("%d %c %c", &n, &a, &b) != EOF)
{
FoldBasket(n, a, b);
PrintAry(n);
}
system("pause");
return 0;
}
叠筐
最新推荐文章于 2023-03-22 20:58:48 发布