zoukankan      html  css  js  c++  java
  • PAT Advanced 1031 Hello World for U (20 分)

    Given any string of N (≥) characters, you are asked to form the characters into the shape of U. For example, helloworld can be printed as:

    h  d
    e  l
    l  r
    lowo
    

    That is, the characters must be printed in the original order, starting top-down from the left vertical line with n1​​ characters, then left to right along the bottom line with n2​​ characters, and finally bottom-up along the vertical line with n3​​ characters. And more, we would like U to be as squared as possible -- that is, it must be satisfied that n1​​=n3​​=max { k | kn2​​ for all 3 } with n1​​+n2​​+n3​​2=N.

    Input Specification:

    Each input file contains one test case. Each case contains one string with no less than 5 and no more than 80 characters in a line. The string contains no white space.

    Output Specification:

    For each test case, print the input string in the shape of U as specified in the description.

    Sample Input:

    helloworld!
    

    Sample Output:

    h   !
    e   d
    l   l
    lowor



    #include <iostream>
    using namespace std;
    int main()
    {
        /**读题
        n1,n2,n3
        n1=n3=height
        n2=width
        height=max(k|k<=width,3<=width<=N)
        2*height+width-2=N
        尽可能方形
        */
        string s;
        cin>>s;
        int N=s.length(),width,height,left=0,right=N-1;
        for(int i=1;;i++){
            if(3*i-2>N){
                height=i-1;
                width=N+2-2*height;
                break;
            }
        }
        for(int j=0;j<height;j++){
            if(j!=height-1){
                cout<<s[left];
                for(int i=0;i<width-2;i++) cout<<" ";
                cout<<s[right]<<endl;
                left++;right--;
            }else{
                for(int i=left;i<=right;i++){
                    cout<<s[i];
                }
            }
        }
        system("pause");
        return 0;
    }
  • 相关阅读:
    Python 学习日记 第七天
    Python 学习日记 第六天
    Python 学习日记 第五天
    Python 学习日记 第四天
    Redis 中的数据类型及基本操作
    Asp.net mvc 中View 的呈现(二)
    Asp.net mvc 中View的呈现(一)
    Asp.net mvc 中Action 方法的执行(三)
    Asp.net mvc 中Action 方法的执行(二)
    Asp.net mvc 中Action 方法的执行(一)
  • 原文地址:https://www.cnblogs.com/littlepage/p/11292599.html
Copyright © 2011-2022 走看看