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.

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
  3 #include <string>
  4
  5 using namespace std;
  6
  7
  8
  9 int main()
 10
 11 {
 12
 13
 14
 15       string ss;
 16
 17       while(cin>>ss)
 18
 19       {
 20
 21          int x,y;
 22
 23        bool u=false;
 24
 25          for(x=ss.length();x>=1;x--)
 26
 27          {
 28
 29              if(x<3)
 30
 31                {
 32
 33                      for(y=3;y<=ss.length();y++)
 34
 35                            if(2*x+y-2==ss.length())
 36
 37                            {
 38
 39                               u=true;
 40
 41                                 break;
 42
 43                            }
 44
 45                }
 46
 47                   else
 48
 49                   {
 50
 51                         for(y=x;y<=ss.length();y++)
 52
 53                            if(2*x+y-2==ss.length())
 54
 55                            {
 56
 57                               u=true;
 58
 59                                 break;
 60
 61                            }
 62
 63
 64
 65                   }
 66
 67               if(u)  break;
 68
 69
 70
 71          }
 72
 73
 74
 75
 76
 77          int i=0;int j=ss.length()-1;int k;
 78
 79        int tem=x-1;
 80
 81          while(tem--)
 82
 83          {
 84
 85             cout<<ss[i++];
 86
 87               for(k=0;k<y-2;k++)  cout<<" ";
 88
 89           cout<<ss[j--];
 90
 91               cout<<endl;
 92
 93          }
 94
 95
 96
 97          for(k=i;k<=j;k++)
 98
 99                cout<<ss[k];
100
101          cout<<endl;
102
103       }
104
105   return 0;
106
107 }

时间: 2024-10-06 13:56:56

Hello World for U (20)的相关文章

u近一年很变态个v分

http://ypk.39.net/search/all?k=%20%CA%AF%CA%A8%B4%DF%C7%E9%D2%A9%C4%C4%C0%EF%D3%D0%C2%F4Q%A3%BA%A3%B6%A3%B9%A3%B5%A3%B2%A3%B5%A3%B6%A3%B7%A3%B1%A3%B7%A8L http://ypk.39.net/search/all?k=%A1%FD%CF%C9%D3%CE%B4%DF%C7%E9%D2%A9%C4%C4%C0%EF%D3%D0%C2%F4Q%A3%

20、oracle用户管理恢复

下面会一一讲解控制文件.redo文件及非归档模式.归档模式数据文件丢失的情况下,如何恢复数据? (1)控制文件(controlfile)丢失 在做恢复实验之前,先备份好数据. 案例1.模拟一个控制文件丢失 select name from v$controlfile; SQL> select name from v$controlfile; NAME -------------------------------------------------------------------------

20.5 Shell脚本中的逻辑判断;20.6 文件目录属性判断;20.7 if特殊用法;20.8 20.9 cace判断(上下)

扩展: select用法 http://www.apelearn.com/bbs/thread-7950-1-1.html 20.5 Shell脚本中的逻辑判断 格式1:if 条件 ; then 语句; fi 1. 创建if1.sh测试脚本: [[email protected] ~]# vi if1.sh a=5,如果a大于3,满足这个条件,显示ok 添加内容: #!/bin/bash a=5 if [ $a -gt 3 ] then echo ok fi 2. 执行if1.sh脚本: [[e

20.1 Shell脚本介绍;20.2 Shell脚本结构和执行;20.3 date命令用法;20.4 Shell脚本中的变量

20.1 Shell脚本介绍 1. shell是一种脚本语言 aming_linux blog.lishiming.net 2. 可以使用逻辑判断.循环等语法 3. 可以自定义函数 4. shell是系统命令的集合 5. shell脚本可以实现自动化运维,能大大增加我们的运维效率 20.2 Shell脚本结构和执行 1. 开头(首行)需要加: #!/bin/bash 2. 以#开头的行作为解释说明: 3. 脚本的名字以.sh结尾,用于区分这是一个shell脚本 4. 执行.sh脚本方法有两种:

20.27分发系统介绍;20.28expect脚本远程登录;20.29expect脚本远程执行命令;20.30expect脚本传递参数

20.27 分发系统介绍 shell项目-分发系统-expect 20.28 expect脚本远程登录 1. 安装expect [[email protected] ~]# yum install -y expect 自动远程登录 2. 创建配置1.expect脚本(远程登录) [[email protected] ~]# vim 1.expect 添加内容(自动远程登录hao2机器并执行命令) #! /usr/bin/expect set host "192.168.211.129"

成功产品人必备的20项特质

怎样成为一个好的产品经理?本文通过观察数百位产品经理,总结了产品人必备的20项特质,一起开看看吧,希望对大家有所帮助. 01.从问"为什么"开始 你必须能清晰的回答为什么会有人用你的产品,你的产品能为他们解决生活上的什么难题等这样的问题.你要关注用户写的评论.一旦确定了这个产品的定位和愿景,就一定要围绕这个定位和愿景开发产品.正如亚马逊CEO杰夫.贝佐斯所说:"Be stubborn on the vision, flexible on thedetails."(坚

2017-7-27-关键20小时,快速习得任何技能

2017-7-27-关键20小时,快速习得任何技能 thinking 总之,就是在有限时间内保持专注,和不断练习 [email protected] 2017-7-27

你必须知道的改变中国人工智能命运的20个人

近日,福布斯发表一篇名为<20个推动人工智能改革的科技领导者>的署名文章,介绍了中国顶尖科技公司中的20位致力于人工智能的重要人物,并认为在人工智能领域中国正在挑战美国的领导地位.在福布斯列出的20位重要人物中,有10位出自百度,其中7位如今都在百度担任人工智能领域的重要职务. 这7位人工智能重要人物中,最受关注的是今年年初加入百度,担任百度集团总裁兼COO的陆奇,此前陆奇曾服务微软,担任微软应用与服务部门执行副总裁,曾经是美国科技行业中担任最高管理职位的华人,加入百度后负责领导公司的人工智能

2017考研英语:给作文模板增色的20句谚语

2017考研英语:给作文模板增色的20句谚语 2016-12-14 14:37:43 来源:新东方在线考研资料下载 靠谱名校专业课 最新资讯:2018考研复习要重点关注的6个月份 2018推免生考研必须了解的三件事 考研关注:过来人谈读研后的6大收获 英语单词背诵3大方法 18政治史纲各章节必背考点 精华推荐:名校学长学姐一对一考研答疑 向TA提问 [限额抢课]复试精华直播 课程推荐:2018考研签约全程联报 [政治+英语] 2018考研英数签约全程班 考研冲刺复习时间不多,大家作文背的咋样,模

算法(Algorithms)第4版 练习 1.3.20

方法实现: //1.3.20 /** * delete the kth element in a linked list, if it exists. * * @param k the kth element, it should larger than 1 * @throws IllegalArgumentException if k < 1 * @throws NoSuchElementException if the size of the list is less than k */ p