pat甲级1031. Hello World for U (20)

xiaoxiao2021-02-28  45

欢迎访问我的pat甲级题解目录哦https://blog.csdn.net/richenyunqi/article/details/84981078

题目描述

算法设计

蛮简单的一道题,关键在于如何确定n1,n2,n3的大小。假设字符串长度为N,n1,n2,n3需要满足的条件有:

1. n1+n2+n3=N+2

2. n1=n3<=n2且n1,n3应尽可能取最大值

3. 3<=n2<=N

把以上条件综合起来可以得到n1=n3=(N+2)/3向下取整。n1,n2,n3确定以后按规定输出即可。

C++代码

#include<bits/stdc++.h> using namespace std; int main(){ string input=""; getline(cin,input);//读取字符串 int n1=(input.size()+2)/3,n2=input.size()+2-2*n1;//获取n1,n2 //进行输出 for(int i=0;i<n1-1;++i){//前n1-1行,需要输出首尾两个字符,且每行字符数为n2 printf("%c",input[i]); for(int j=0;j<n2-2;++j) printf(" "); printf("%c\n",input[input.size()-i-1]); } //最后一行将没有输出的n2个字符一次性输出 for(int i=0;i<n2;++i) printf("%c",input[n1-1+i]); return 0; }

 

转载请注明原文地址: https://www.6miu.com/read-2619750.html

最新回复(0)