本文主要是介绍sdjzu2121叠筐,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
2121:叠筐分数: 2.3
题目描述
把一个个大小差一圈的筐叠上去,使得从上往下看时,边筐花色交错。这个工作现在要让计算机来完成,得看你的了。
输入格式
输入是一个个的三元组,分别是,外筐尺寸n(n为满足0<n<80的奇整数),中心花色字符,外筐花色字符,后二者都为ASCII可见字符;
输出
输出叠在一起的筐图案,中心花色与外筐花色字符从内层起交错相叠,多筐相叠时,最外筐的角总是被打磨掉。叠筐与叠筐之间应有一行间隔。
样例输入
5 ^ !
7 ( )
0
样例输出
^^^
^!!!^
^!^!^
^!!!^
^^^
)))))
)((((()
)()))()
)()()()
)()))()
)((((()
)))))
提示[+]
*** 提示已隐藏,点击上方 [+] 可显示 ***
2121:叠筐 分数: 2.3
时间限制:1 秒内存限制:32 兆特殊判题: 否 提交:3解决: 1
题目描述
把一个个大小差一圈的筐叠上去,使得从上往下看时,边筐花色交错。这个工作现在要让计算机来完成,得看你的了。输入格式
输入是一个个的三元组,分别是,外筐尺寸n(n为满足0<n<80的奇整数),中心花色字符,外筐花色字符,后二者都为ASCII可见字符;输出
输出叠在一起的筐图案,中心花色与外筐花色字符从内层起交错相叠,多筐相叠时,最外筐的角总是被打磨掉。叠筐与叠筐之间应有一行间隔。样例输入
5 ^ !
7 ( )
0
样例输出^^^
^!!!^
^!^!^
^!!!^^^^ )))))
)((((()
)()))()
)()()()
)()))()
)((((())))))
提示[+]
*** 提示已隐藏,点击上方 [+] 可显示 ***
#include<stdio.h>
int main()
{char b,c;int n,o=0;while(scanf("%d%*c",&n)!=EOF){o++;if(n==0)break;scanf("%c %c",&b,&c);int i,j;int z,f=-1,m,i1;char c1,a[100][100];z=n/2;a[z][z]=b;m=z+1;i1=z-1;if(n==1){if(o!=1)printf("\n");printf("%c\n",b);}else if(n==3){a[0][0]=a[2][0]=a[0][2]=a[2][2]=' ';a[0][1]=a[1][0]=a[1][2]=a[2][1]=c;if(o!=1)printf("\n");for(i=0;i<n;i++){for(j=0;j<n;j++)printf("%c",a[i][j]);printf("\n");}}else {while(m<n-1){if(f==-1)c1=c;else c1=b;for(j=i1;j<=m;j++)a[i1][j]=c1;for(i=i1+1;i<=m;i++)a[i][j-1]=c1;for(j=m-1;j>=i1;j--)a[i-1][j]=c1;for(i=m-1;i>i1;i--)a[i][j+1]=c1;m++;i1--;f=-f;}if(c1==b)c1=c;else if(c1==c)c1=b;for(j=1;j<n-1;j++){a[0][j]=c1;a[n-1][j]=c1;}for(i=1;i<n-1;i++){a[i][0]=c1;a[i][n-1]=c1;}a[0][0]=a[0][n-1]=a[n-1][0]=a[n-1][n-1]=' ';if(o!=1)printf("\n");for(i=0;i<n;i++){for(j=0;j<n;j++)printf("%c",a[i][j]);printf("\n");}}}
}
这篇关于sdjzu2121叠筐的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!