include [HTML_REMOVED]
include [HTML_REMOVED]
include [HTML_REMOVED]
using namespace std;
char logo[1000][1000];
int main()
{
int n = 0;
cin >> n;
for (int i = 0; i < 1000; i)
{
for (int j = 0; j < 1000; j)
{
logo[i][j] = ‘.’;
}
}
for (int i = 2 * n ; i < 2 * n + 5; i++)
{
logo[i][2 * n + 2] = '$';
}
for (int i = 2 * n; i <= 2 * n + 4; i++)
{
logo[2 * n + 3 - 1][i] = '$';
}
for (int k = 1; k <= n; k++)//图案都一样,根据n值的变化找规律打印即可
{
//赋值第一行
for (int i = 2 * (n - k + 1); i < 2 * (n - k + 1) + k * 4 + 1; i++)
{
logo[(n - k + 1) * 2 - 2][i] = '$';
}
//赋值第二行的2个
logo[(n - k + 1) * 2 - 1][2 * (n - k + 1)] = '$';
logo[(n - k + 1) * 2 - 1][2 * (n - k + 1) + k*4] = '$';
//赋值第三行左三个
for (int i = (n - k + 1) * 2 - 2; i < (n - k + 1) * 2 - 2 + 3; i++)
{
logo[(n - k + 1) * 2][i] = '$';
}
//赋值第三行右三个
for (int i = (n - k + 1) * 2 - 2 + 4 * k + 2; i < (n - k + 1) * 2 - 2 + 4 * k + 2 + 3; i++)
{
logo[(n - k + 1) * 2][i] = '$';
}
//赋值左边一列和右边边一列
for (int i = (n - k + 1) * 2; i < (n - k + 1) * 2 + k*4+1; i++)
{
logo[i][(n - k + 1) * 2 - 2] = '$';
logo[i][(n - k + 1) * 2 - 2 + k*4 +4] = '$';
}
//赋值倒数第三行左三个,和第三行对应,只是行有所变化
for (int i = (n - k + 1) * 2 - 2; i < (n - k + 1) * 2 - 2 + 3; i++)
{
logo[(n - k + 1) * 2 + k * 4][i] = '$';
}
//赋值倒数第三行右边三个
for (int i = (n - k + 1) * 2 - 2 + 4 * k + 2; i < (n - k + 1) * 2 - 2 + 4 * k + 2 + 3; i++)
{
logo[(n - k + 1) * 2 + k * 4][i] = '$';
}
//赋值倒数第二行左右2个
logo[(n - k + 1) * 2 - 1 + k * 4 + 2][2 * (n - k + 1)] = '$';
logo[(n - k + 1) * 2 - 1 + k * 4 + 2][2 * (n - k + 1) + k*4] = '$';
//赋值倒数第一行
for (int i = 2 * (n - k + 1); i < 2 * (n - k + 1) + k * 4 + 1; i++)
{
logo[(n - k + 1) * 2 - 2 + k * 4 + 4][i] = '$';
}
}
for (int i = 0; i <= n * 4 + 4; i++)
{
for (int j = 0; j < n * 4 + 5; j++)
{
printf("%c", logo[i][j]);
}
printf("\n");
}
return 0;
}
blablabla
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla