您的位置:首页 > 其它

围棋

2016-02-19 16:50 169 查看
1007:围棋

Time Limit: 1 Sec Memory Limit: 128 MB 64bit IO Format: %lld

Submitted: 184 Accepted: 98

[Submit][Status][Web Board]

Description

小明有一天玩完围棋突然想到,围棋是包围形的游戏,我可以做出一个一层层互相包围的正方形棋盘吗?小明很感兴趣却不知道怎么做,现在由你来解决这个问题。

Input

输入一个数字n(n<30)来规定围棋的正方形边长。(多组测试)

Output

输出正方形棋盘。

每次测试结束空一行。

当奇数时最外层为‘*’否则为‘@’。

Sample Input

5

Sample Output

@@@

@@*

@@@

#include <stdio.h>
int main()
{
int n,i,j,k;
while(scanf("%d",&n)!=EOF)
{
char a[40][40];
for(i=0; i<30; i++)
for(j=0; j<30; j++)
a[i][j]='0';
i=0;
j=0;
int t=0;
char ch;
if(n%2!=0)
{
a[0][0]='*';
while(t<=(n+1)/2)//写成函数会比较好
{
t++;
if(t%2!=0)
ch='*';
else
ch='@';

while(j+1<n&&a[i][j+1]=='0')
{
a[i][++j]=ch;
}
while(i+1<n&&a[i+1][j]=='0')
{
a[++i][j]=ch;
}
while(j-1>=0&&a[i][j-1]=='0')
{
a[i][--j]=ch;
}
while(i-1>=0&&a[i-1][j]=='0')
{
a[--i][j]=ch;
}

}

}
else
{
a[0][0]='@';
while(t<=n/2)
{
t++;
if(t%2!=0)
ch='@';
else
ch='*';

while(j+1<n&&a[i][j+1]=='0')
{
a[i][++j]=ch;
}
while(i+1<n&&a[i+1][j]=='0')
{
a[++i][j]=ch;
}
while(j-1>=0&&a[i][j-1]=='0')
{
a[i][--j]=ch;
}
while(i-1>=0&&a[i-1][j]=='0')
{
a[--i][j]=ch;
}

}

}
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
printf("%c",a[i][j]);
printf("\n");
}
printf("\n");

}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: