zoukankan      html  css  js  c++  java
  • 1031. Hello World for U

    1031. Hello World for U (20)

    时间限制
    400 ms
    内存限制
    65536 kB
    代码长度限制
    16000 B
    判题程序
    Standard
    作者
    CHEN, Yue

    Given any string of N (>=5) 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| k <= n2 for all 3 <= n2 <= N } 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

    import java.util.Scanner;
    
    public class Main {
    
        public static void main(String[] args) {
            Scanner  in=new Scanner(System.in);
            String n=in.nextLine();
            int num=n.length();
            int n1,n3,x = 0,y = 0;
            for(n3=3;n3<=num;n3++){
                for(n1=n3;n1>=0;n1--){
                    //System.out.println(n1+" "+n3+" "+(2*n1+n3-2)+" "+num);
                    if(2*n1+n3-2==num){
                        x=n1;
                        y=n3;
                        break;
                    }
                    if(x!=0&&y!=0) break;
                }
            }
            //System.out.println(num+" "+x+" "+y);
            for(int i=0,j=num-1;i<x-1;i++,j--){
                System.out.print(n.charAt(i));
                for(int k=0;k<y-2;k++)
                {
                    System.out.print(" ");
                }
                System.out.println(n.charAt(j));
            }
            for(int i=x-1;i<x-1+y;i++){
                System.out.print(n.charAt(i));
            }
        }
    
    }
  • 相关阅读:
    C# 从服务器下载文件
    不能使用联机NuGet 程序包
    NPOI之Excel——合并单元格、设置样式、输入公式
    jquery hover事件中 fadeIn和fadeOut 效果不能及时停止
    UVA 10519 !! Really Strange !!
    UVA 10359 Tiling
    UVA 10940 Throwing cards away II
    UVA 10079 Pizze Cutting
    UVA 763 Fibinary Numbers
    UVA 10229 Modular Fibonacci
  • 原文地址:https://www.cnblogs.com/chen20135517/p/7745499.html
Copyright © 2011-2022 走看看