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

    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. 
    输入描写叙述:
    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.


    输出描写叙述:
    For each test case, print the input string in the shape of U as specified in the description.

    输入样例:
    helloworld!

    输出样例:
    h   !
    e   d
    l   l
    lowor


    #include <iostream>
    #include <cstring>
    #include <string>
    
    using namespace std;
    
    int main()
    {
    	int i1,i2,left_right,down,i,j,k;
    	char s[1024];
    	while(cin>>s)
    	{
    
    		i1=(strlen(s)+2)/3;
    		i2=(strlen(s)+2)%3;
    		if(1==i2)
    		{
    			left_right=i1;
    			down=i1+1;
    		}
    		else if(2==i2)
    		{
    			left_right=i1;
    			down=i1+2;
    		}
    		else
    		{
    			left_right=down=i1;
    		}
    		for(i=0,k=0;i<left_right-1;i++)
    		{
    			cout<<s[k];
    			for(j=2;j<down;j++)
    				cout<<" ";
    			cout<<s[strlen(s)-1-k]<<endl;
    			k++;
    		}
    		for(i=k;i<strlen(s)-k;i++)
    			cout<<s[i];
    		cout<<endl;
    	}
    	return 0;
    }


    插个图



  • 相关阅读:
    迭代器,生成器,可迭代
    变量名
    python安装
    pickle.dump() pickle.load() keyword.iskeyword() keyword.kwlist random.randint(1,100) random.choice(x) random.shuffle()
    time.time() time.asctime() time.localtime()
    input() raw_input() sys.stdin.readline()
    BufferedReader用法
    汉诺塔问题
    冒泡排序、选择排序和插入排序实例
    Connection reset by peer
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/5158606.html
Copyright © 2011-2022 走看看