您的位置:首页 > 其它

【PAT】1031. Hello World for U

2017-01-17 22:01 453 查看
#include<iostream>
#include<cmath>
#include <cstdio>
#include<algorithm>
#include <cstring>
using namespace std;

char str[82];
int main(){

scanf("%s",str);
int n=strlen(str);
int ans=0,k=3;
int n2;
while(k<n){
if(3*k-2>=n && ans<(n+2-k)/2 && (n+2-k)%2==0){
ans=(n+2-k)/2;
n2=k;
}

k++;
}

for(int i=0;i<ans-1;i++){
cout<<str[i];
for(int i=0;i<n2-2;i++)
cout<<" ";
cout<<str[n-i-1]<<endl;

}
for(int i=0;i<n2;i++)
cout<<str[i+ans-1];
return 0;

}

优化:

#include<iostream>
#include<cmath>
#include <cstdio>
#include<algorithm>
#include <cstring>
using namespace std;

char str[82];
int main(){

gets(str);
int N=strlen(str);
int n1=(N+2)/3,n3=n1,n2=N+2-n1-n3;
for(int i=0;i<n1-1;i++){
printf("%c",str[i]);
for(int j=0;j<n2-2;j++)
printf(" ");
printf("%c",str[N-i-1]);
}
for(int i=0;i<n2;i++){
printf("%c",str[n1+i-1]);
}
return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: