zoukankan      html  css  js  c++  java
  • 编筐

    需要的时候,就把一个个大小差一圈的筐叠上去,使得从上往下看时,边筐花色交错。这个工作现在要让计算机来完成,得看你的了。

    Input
    输入是一个个的三元组,分别是,外筐尺寸n(n为满足0<n<80的奇整数),中心花色字符,外筐花色字符,后二者都为ASCII可见字符;

    Output
    输出叠在一起的筐图案,中心花色与外筐花色字符从内层起交错相叠,多筐相叠时,最外筐的角总是被打磨掉。叠筐与叠筐之间应有一行间隔。

    Sample Input
    11 B A
    5 @ W

    Sample Output
    AAAAAAAAA
    ABBBBBBBBBA
    ABAAAAAAABA
    ABABBBBBABA
    ABABAAABABA
    ABABABABABA
    ABABAAABABA
    ABABBBBBABA
    ABAAAAAAABA
    ABBBBBBBBBA
    AAAAAAAAA

    @@@
    @WWW@
    @W@W@
    @WWW@
    @@@

    #include <iostream>
    using namespace std;
    char str[100][100];
    int n;
    void cc(int m,int th,char a)
    {
    int i;
    for(i=th;i<=n+1-th;i++)
    {
    str[i][th]=a;
    str[i][n+1-th]=a;
    }
    for(i=th;i<=n+1-th;i++)
    {
    str[th][i]=a;
    str[n+1-th][i]=a;
    }
    }
    int main()
    {
    int i,j,m,k=0;
    char str1,str2,str0;
    while(cin>>n>>str1>>str2)
    {
    if(k!=0) cout<<endl;
    if(n==1) {cout<<str1<<endl;k++;continue;}
    m=n/2+1;
    for(i=1;i<=m;i++)
    {
    if(i%2==0&&m%2==0) str0=str1;
    if(i%2!=0&&m%2==0) str0=str2;
    if(i%2==0&&m%2!=0) str0=str2;
    if(i%2!=0&&m%2!=0) str0=str1;
    cc(m,i,str0);
    }
    str[1][1]=str[1][n]=' ';
    str[n][1]=str[n][n]=' ';
    for(i=1;i<=n;i++)
    {
    for(j=1;j<=n;j++)
    cout<<str[i][j];
    cout<<endl;
    }
    k++;
    }
    return 0;
    }

  • 相关阅读:
    LA 6439 Pasti Pas! Hash
    HDU 1067 Gap BFS+Hash
    POJ 3474 Gold Balanced Lineup Hash
    ZOJ 3802 Easy 2048 Again 状压DP
    Hihocoder #1044 状态压缩·一
    HDU 2522 & AOJ 441 & AOJ 364 关于小数和分数的转换
    HDU 2549 Sumset Hash+枚举
    POJ 1840 Eqs Hash + 中途相遇法
    HDU 2128 Tempter of the Bone II BFS
    POJ 3686 & 拆点&KM
  • 原文地址:https://www.cnblogs.com/NYNU-ACM/p/4658240.html
Copyright © 2011-2022 走看看