博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
九度 1464:Hello World for U
阅读量:5927 次
发布时间:2019-06-19

本文共 1295 字,大约阅读时间需要 4 分钟。

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.

 

思路

1. N1+N2+N3-2= N, 尽量追求 N1,N2,N3 平均, 所以要么取 N3 = ceil((N+2)/3), 要么取 N1=N2=(N+2)/3-1. 第一种取法有不适合的情况

 

代码

#include 
#include
#include
#include
using namespace std;int n1, n2, n3;int main() { string input; while(cin >> input) { int len = input.size(); n1 = n2 = (len+2)/3 -1; n3 = len - 2*n1; for(int i = 0; i < n1; i ++) { cout << input[i]; for(int j = 0; j < n3-2; j ++) { cout << ' '; } cout << input[len-i-1]; cout << endl; } for(int i = 0; i < n3; i ++) { cout << input[i+n1]; } cout << endl; } return 0;}

 

转载地址:http://dthvx.baihongyu.com/

你可能感兴趣的文章
结构和类
查看>>
随机生成k个范围为1-n的随机数,其中有多少个不同的随机数?
查看>>
Eclipse里如何配制项目在tomcat中启动
查看>>
Arduino 数码管LED驱动器 阵列方法
查看>>
【移动前端开发实践】从无到有(统计、请求、MVC、模块化)H5开发须知
查看>>
使用Java语言开发微信公众平台(五)——获取access_token
查看>>
time machine不备份指定文件夹
查看>>
Flex AsDoc 完整版
查看>>
矩阵乘法-分块计算
查看>>
原型模式
查看>>
动态链接库、名字修饰约定、调用约定
查看>>
C# 程序打包
查看>>
[转载]从100PV到1亿级PV网站架构演变
查看>>
StyleCop的常见错误
查看>>
谈谈随机数
查看>>
C# 3.0入门系列(三)
查看>>
.h头文件 .lib库文件 .dll动态库文件之间的关系
查看>>
联盟链和公有链混合架构如何实现?Hyperledger核心开发者陈昌访谈
查看>>
2017年,大数据工程师应该如何充实自己的专业工具箱
查看>>
《大秦帝国》作者孙皓晖将现身杭州华为阅读·DigiX读书会
查看>>