1031. Hello World for U (20)
2016-04-22 09:29
260 查看
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
IDEA
1.首先求出行y,与列x,注意y<=x,且y最接近x
2.控制输出格式,空格数等
CODE
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
IDEA
1.首先求出行y,与列x,注意y<=x,且y最接近x
2.控制输出格式,空格数等
CODE
#include<iostream> #include<cstring> using namespace std; int main(){ string s; cin>>s; int n=s.length(); int x,y; for(int i=(n+2)/3;i<=n;i++){ if(i>=3){ if((n-i+2)%2==0){ x=i; y=(n-i+2)/2; if(y<=x){ break; } } } } //cout<<x<<" "<<y; for(int i=0;i<(n-y+1);i++){ if(i>=0&&i<y-1){ cout<<s[i]; for(int k=0;k<x-2;k++){ cout<<" "; } cout<<s[n-1-i]<<endl; }else{ cout<<s[i]; } } return 0; }
相关文章推荐
- MATLAB im2colstep
- OpenKM开发环境搭建
- 一个类似MIUI中原生短信编辑功能
- MVC 自定义IModelBinder实现json参数转Dictionary<string, string>
- 青云 ubuntu下mysql远程连接配置
- Java Error: java.lang.UnsupportedClassVersionError: ...bad major version at offset=6
- 性能测试负载模型(二)
- 科比告别赛致大众,尤其深刻意向那一句“man”,全场沸腾
- CocoaLumberjack和XcodeColors定制个性化log系统
- Visualizations&plot&pivot_table
- 51nod 125乘法逆元 (扩展欧几里得)
- uva 10673 Play with Floor and Ceil 数学
- android paint 研究总结
- 自定义View实现图片缩放
- 在应用程序中播放音频和视频
- 翻译漫谈笔记之3翻译的步骤及其特点
- 如何自学Android
- AndroidSDK更新慢和Android Studio老连接不到外网的解决方式分享一下
- 剑指offer面试题 替换空格
- 堆内存传递