1031 Hello World for U (20)
Posted mr-stn
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1031 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 n~1~ characters, then left to right along the bottom line with n~2~ characters, and finally bottom-up along the vertical line with n~3~ characters. And more, we would like U to be as squared as possible -- that is, it must be satisfied that n~1~ = n~3~ = max { k| k <= n~2~ for all 3 <= n~2~ <= N } with n~1~
- n~2~ + n~3~ - 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
1 #include<iostream> 2 using namespace std; 3 int main(){ 4 string a; 5 cin>>a; 6 int len=a.size(); 7 int y=(len+2)/3; 8 int x=len-y-y; 9 for(int i=0; i<y-1; i++){ 10 cout<<a[i]; 11 for(int j=0; j<x; j++) cout<<" "; 12 cout<<a[len-i-1]; 13 cout<<endl; 14 } 15 for(int k=0; k<x+2; k++)cout<<a[y+k-1]; 16 return 0; 17 }
以上是关于1031 Hello World for U (20)的主要内容,如果未能解决你的问题,请参考以下文章