美文网首页
PAT_1045 Hello World for U (20)

PAT_1045 Hello World for U (20)

作者: 6J | 来源:发表于2018-07-20 17:04 被阅读0次

题目描述:

给定任意N(> = 5)个字符的字符串,系统会要求您将字符组成U形。例如,“helloworld”可以打印为:


U型

其中要求为:U尽可能地平方 - 也就是说,必须满足n1 =
n3 = max {k | 对于所有3 <= n2 <= N},k <= n2,其中n1 + n2 + n3-2 = N.

输入

一行字符串(长度为5-80)

输出

输出U型字符。

解题思路

因为要求三条边尽可能的平方,且由条件可以看出,且尽可能的使n2最大化。推出规则。
n2 = (n + 2) % 3 + (n + 2) / 3;
n3 = n1 = (n + 2 - n2) / 2;

代码

#include<stdio.h>
#include<iostream>
#include<string>
using namespace std;
int main() {
    string str;
    cin >> str;
    int n1, n2, n3,n= str.size();
    n2 = (n + 2) % 3 + (n + 2) / 3;
    n1 = (n + 2 - n2) / 2;
    n3 = n1;
    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;
    }
    for (int i = n1-1; i < n1 + n2-1; i++) {
        cout << str[i];
    }
    cout << endl;
    return 0;
}


我是6J,爱吃爱玩爱笑的非典型程序~~~媛

相关文章

  • PAT_1045 Hello World for U (20)

    题目描述: 给定任意N(> = 5)个字符的字符串,系统会要求您将字符组成U形。例如,“helloworld”可以...

  • PAT A1031 Hello World for U

    PAT A1031 Hello World for U A1031 Hello World for U 题目 如何...

  • 1031 Hello World for U (20 分)

    虽然是道简单题,但是实现的这么省空间省时间一下子就ac还是有点爽 题目链接 Advanced1031

  • Hello World

    Hello World! This demo is written by Markdown Tips for u:...

  • 4 替换空格

    题目 把字符串中出现的空格替换为“%20”。示例“Hello World” 变为“Hello%20World" 结...

  • 常用markdown语法

    Hello World! Hello World! Hello World! Hello World! Hello...

  • hello

    hello, world hello, world hello, world hello, world

  • Markdown

    标题: hello world hello world hello world hello world hello...

  • 2018-06-11

    markdown hello world hello world hello world hello world ...

  • PAT 1031:Hello World for U

    Given any string of N (>=5) characters, you are asked to ...

网友评论

      本文标题:PAT_1045 Hello World for U (20)

      本文链接:https://www.haomeiwen.com/subject/izeqmftx.html