文章标题

来源:互联网 发布:怎样修改mac地址 编辑:程序博客网 时间:2024/05/17 07:40

Hello World for U

题目描述:
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.

输入:
There are multiple test cases.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.

输出:
For each test case, print the input string in the shape of U as specified in the description.

样例输入:
helloworld!
ac.jobdu.com

样例输出:
h !
e d
l l
lowor
a m
c o
. c
jobdu.

代码:

#include<iostream>  #include<string.h>  using namespace std;#define max 85  char s[2][max];int main(){    int len[2];    int n1, n2, n3;    int i, j;    cin >> s[0];    cin >> s[1];    len[0] = strlen(s[0]);    len[1] = strlen(s[1]);    for (int p = 0; p < 2; p++){        n1 = n3 = (len[p] + 2) / 3;        n2 = len[p] - 2 * n1;        for (i = 0; i < n1 - 1; i++)        {            cout << s[p][i];            for (j = 0; j < n2; j++) cout << " ";            cout << s[p][len[p] - 1 - i] << endl;        }        for (j = i; j < len[p] - i; j++)            cout << s[p][j];        cout << endl;    }    return 0;}
原创粉丝点击