[PAT (Advanced Level) ]1031.Hello World for U 解题文档
来源:互联网 发布:golang chan 编辑:程序博客网 时间:2024/04/26 14:14
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 de ll rlowoThat 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 dl llowor
分析:此题难度很小,估计是PAT甲级里面难度系数垫底的题目了,一遍过。需要讨论三种情况。求出n1,n2,n3后输出即可。
C++代码如下。
#include<string>#include<iostream>using namespace std;int main(){ string str; cin>>str; int N; int n1,n2;//n3=n1 N=str.size(); //three conditions if((N+2)%3==0){ n1=(N+2)/3; n2=n1; } else if((N+2)%3==1){ n1=(N+1)/3; n2=n1+1; } else if((N+2)%3==2){ n1=N/3; n2=n1+2; } for(int i=0;i<n1-1;i++){ cout<<str[i]; for(int j=0;j<n2-2;j++) cout<<" "; cout<<str[N-i-1]<<endl; } cout<<str.substr(n1-1,n2); return 0;}
0 0
- [PAT (Advanced Level) ]1031.Hello World for U 解题文档
- 【PAT Advanced Level】1031. Hello World for U (20)
- PAT (Advanced Level) Practise 1031. Hello World for U (20)
- 【c++】PAT (Advanced Level)1031. Hello World for U (20)
- 【PAT (Advanced Level)】1031. Hello World for U (20)
- 【PAT】【Advanced Level】1031. Hello World for U (20)
- Pat(Advanced Level)Practice--1031(Hello World for U)
- PAT (Advanced Level) Practise1031 Hello World for U (20)
- PAT (Advanced Level) Practise 1031 Hello World for U (20)
- PAT-PAT (Advanced Level) Practise 1031. Hello World for U (20) (图形打印) 【二星级】
- PAT (Advanced Level) 1031. Hello World for U (20) 用字符串输出形状U
- 1031. Hello World for U (20)【字符串处理】——PAT (Advanced Level) Practise
- [PAT (Advanced Level) ]1011. World Cup Betting 解题文档
- 1031. Hello World for U (20)-PAT
- 【PAT】1031. Hello World for U (20)
- PAT 1031. Hello World for U (20)
- PAT 1031. Hello World for U (20)
- PAT 1031. Hello World for U (20)
- 验证码图片生成类
- Android学习记事(一)
- 数据库的相关操作
- linux VM中复制虚拟机后eth0变成eth1
- java入门第三天 switch case 运算符 小游戏准备
- [PAT (Advanced Level) ]1031.Hello World for U 解题文档
- Android adb.exe程序启动不起来,如何处理
- 内核list.h在用户态使用举例
- javaweb学习笔记之关于分层结构的初步理解
- webrtc windows api音频采集总结
- X86-64寄存器和栈帧
- Android中解析html网页
- 堆、栈面面观
- Android 学习之Android四大组件(一)——Activity