pat1031Hello World for U (20)
2015-10-04 22:50
288 查看
题意分析:
(1)给出一个长度大于5的字符串,然后从上到下输出n1个字符,从左到右到右输出n2个字符(包括边界,也就是n1的最后一个字符),从下到上输出n3个字符,让结果尽可能呈现方形,按照题目中公式的理解:n1=n3<=n2,n1+n2+n3-3=N,n1从1开始自增,求出n1,n2,n3的值,直到第一次不符合条件时,回溯到上一次的结果再退出
(2)按照打印规则,在求出n1,n2,n3之后,先输出字符串第一个字符,中间应该空出n2-2个字符(因为n2也包括了n1和n3最底下的两个字符),再输出最后一个字符,依此类推。直到最后一行全部输出剩下的部分
可能坑点:
(1)错误地理解了n1和n2之间的关系,n1和n2有重叠部分
(1)给出一个长度大于5的字符串,然后从上到下输出n1个字符,从左到右到右输出n2个字符(包括边界,也就是n1的最后一个字符),从下到上输出n3个字符,让结果尽可能呈现方形,按照题目中公式的理解:n1=n3<=n2,n1+n2+n3-3=N,n1从1开始自增,求出n1,n2,n3的值,直到第一次不符合条件时,回溯到上一次的结果再退出
(2)按照打印规则,在求出n1,n2,n3之后,先输出字符串第一个字符,中间应该空出n2-2个字符(因为n2也包括了n1和n3最底下的两个字符),再输出最后一个字符,依此类推。直到最后一行全部输出剩下的部分
可能坑点:
(1)错误地理解了n1和n2之间的关系,n1和n2有重叠部分
#include <iostream> #include <string.h> using namespace std; int main() { string str; cin>>str; int x,y; int length=str.length(); for(x=1;;x++) { y=length-2*x+2; if(y<x) { y+=2; x--; break; } } int i=0; int j=length-1; while(i<x-1) { cout<<str[i]; for(int k=0;k<y-2;k++)cout<<" "; cout<<str[j]<<endl; i++; j--; } while(i<=j) { cout<<str[i]; i++; } return 0; }
相关文章推荐
- 在Spring中使用cache(EhCache的对象缓存和页面缓存)
- Mac OS X hosts 不起作用
- 10 种机器学习算法的要点(附 Python 和 R 代码)
- Rich控件一
- 配置mysql5.5主从服务器
- mysql.exe闪退与ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' 的解决方案
- Python的高级特性12:类的继承
- Delphi中的消息处理
- runtime之实现方法交换(简单版本)
- 数据结构【线性表(二)链表】项目之单链表:逆置
- iOS编程-------事件处理UIEvent / 触摸事件UITouch
- 冒泡排序法
- 聚簇索引概念(Myisam与Innodb索引的区别)
- Spring MVC Cookie example
- php bind_param()函数
- Spring MVC Cookie example
- Spring MVC Cookie example
- Spring MVC Cookie example
- Nginx 1.5.2 + PHP 5.5.1 + MySQL 5.6.10 在 CentOS 下的编译安装
- 安装windows后grub的恢复