hdu 2074 叠筐(数论)
2013-04-04 16:37
381 查看
hdu 2074 叠筐
Problem Description需要的时候,就把一个个大小差一圈的筐叠上去,使得从上往下看时,边筐花色交错。这个工作现在要让计算机来完成,得看你的了。Input输入是一个个的三元组,分别是,外筐尺寸n(n为满足0<n<80的奇整数),中心花色字符,外筐花色字符,后二者都为ASCII可见字符;
Output输出叠在一起的筐图案,中心花色与外筐花色字符从内层起交错相叠,多筐相叠时,最外筐的角总是被打磨掉。叠筐与叠筐之间应有一行间隔。
Sample Input11 B A5 @ W
Sample Output AAAAAAAAA ABBBBBBBBBAABAAAAAAABAABABBBBBABAABABAAABABAABABABABABAABABAAABABAABABBBBBABAABAAAAAAABAABBBBBBBBBA AAAAAAAAA @@@ @WWW@@W@W@@WWW@ @@@
C++代码如下:
#include<iostream>
using namespace std;
int main()
{
char a,b,t;
int n,i,j;
char str[90][90];
int r=0;
while(cin>>n>>a>>b)
{
if(r++)
cout<<endl;
if(n==1)
{
cout<<a<<endl;
continue;
}
if(n%4==1)
t=a,a=b,b=t;
for(i=0;i<n;i++)
str[0][i]=b;
for(i=1;i<=n/2;i++)
{
memcpy(str[i],str[i-1],sizeof(str[i-1]));
for(j=i;j<n-i;j++)
if(i%2==0)
str[i][j]=b;
else
str[i][j]=a;
}
str[0][0]=str[0][n-1]=' ';
for(i=0;i<=n/2;i++)
{
for(j=0;j<n;j++)
{
cout<<str[i][j];
}
cout<<endl;
}
for(i=n/2-1;i>=0;i--)
{
for(j=0;j<n;j++)
{
cout<<str[i][j];
}
cout<<endl;
}
}
return 0;
}
相关文章推荐
- HDU-2608 0 or 1 数论题
- HDU 1060 数论, log10的一个用法
- 数论基础定理及其应用(hdu 2685 I won't tell you this is about number theory, hdu 2582 f(n),hdu 1792 A New Chan)
- HDU 1019 数论 GCD和MCM 水题
- 【 数论 Nim博弈 】HDU 2176 取(m堆)石子游戏
- HDU 5728 PowMod(数论,欧拉函数的各种性质)
- HDU 1695(数论,筛选+素因子分解+容斥)
- HDU 4497 数论+组合数学
- 2017杭电多校第七场1005 Euler theorem(勉强数论)HDU 6124
- HDU 4143 A Simple Problem(数论-水题)
- hdu 2074 叠框
- HDU 1695 GCD 【数论,容斥原理】
- 数论 --- 费马小定理 + 快速幂 HDU 4704 Sum
- hdu 1395 2^x mod n = 1 (简单数论)
- HDU 4937 Lucky Number(数论)
- HDU 5584 青蛙跳跳跳 小小的数论题
- (step7.2.1)hdu 1395(2^x mod n = 1——简单数论)
- (step7.2.1)hdu 1395(2^x mod n = 1——简单数论)
- HDU 5974 A Simple Math Problem (数论,大连区域赛)
- hdu 5317 RGCDQ(数论素筛)