题目链接:点击打开链接
题目大意:略。
解题思路:
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; }