题目链接:点击打开链接
题目大意:略。
解题思路:
AC 代码
#include<bits/stdc++.h>
#include<cmath>
#define mem(a,b) memset(a,b,sizeof a);
#define INF 0x3f3f3f3f
using namespace std;
typedef long long ll;
int main()
{
int n;
while(~scanf("%d",&n))
{
int outlen=n*4+1, len=n*2, klen=4*n-1, cnt=-2, jlen=0;
printf(".."); for(int i=1;i<=outlen;i++) printf("$"); printf("..\n");
for(int i=0; i<len; i++,cnt++,klen-=2)
{
if(cnt>=0 && cnt%2==0) jlen++;
// pre $.
for(int j=1;j<=jlen;j++)
{
printf("$.");
}
if(i%2==1)
{
printf("$$$.");
for(int k=1;k<=klen;k++) printf("$");
printf(".$$$");
}
else
{
printf("..$");
for(int k=1;k<=klen;k++) printf(".");
printf("$..");
}
// next $.
for(int j=1;j<=jlen;j++)
{
printf(".$");
}
puts("");
}
for(int i=1;i<=n;i++) printf("$.");
printf("..$..");
for(int i=1;i<=n;i++) printf(".$");
puts("");
for(int i=1;i<=n;i++) printf("$.");
printf("$$$$$");
for(int i=1;i<=n;i++) printf(".$");
puts("");
for(int i=1;i<=n;i++) printf("$.");
printf("..$..");
for(int i=1;i<=n;i++) printf(".$");
puts("");
cnt=-2, klen+=2;
for(int i=len-1; i>=0; i--,cnt++,klen+=2)
{
if(cnt>=0 && cnt%2==0) jlen--;
// pre $.
for(int j=1;j<=jlen;j++)
{
printf("$.");
}
if(i%2==1)
{
printf("$$$.");
for(int k=1;k<=klen;k++) printf("$");
printf(".$$$");
}
else
{
printf("..$");
for(int k=1;k<=klen;k++) printf(".");
printf("$..");
}
// next $.
for(int j=1;j<=jlen;j++)
{
printf(".$");
}
puts("");
}
printf(".."); for(int i=1;i<=outlen;i++) printf("$"); printf("..\n");
}
return 0;
}