0
点赞
收藏
分享

微信扫一扫

ZCMU - 2065: 打印十字图


题目链接:​​点击打开链接​​

题目大意:略。

解题思路:

ZCMU - 2065: 打印十字图_蓝桥杯

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;
}


举报

相关推荐

0 条评论