叠筐

来源:互联网 发布:vscode php格式化插件 编辑:程序博客网 时间:2024/06/06 10:06
/****************************** 作者:cncoderalex 博客:http://blog.csdn.net/cncoderalex *******************************/#include <iostream>#include <memory>#include <string>#include <algorithm>using namespace std;#define MAXN 20char 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;}

0 0
原创粉丝点击