欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PAT甲级 1031 Hello World for U 模拟

程序员文章站 2022-06-11 15:02:03
...

PAT甲级 1031 Hello World for U 模拟

代码如下:

#include<iostream>
#include<string.h>
#include<stdio.h>
#define MAX 100
using namespace std;

char ch[MAX][MAX];
char s[MAX];

int main(){
  for(int i=0;i<MAX;i++){
    for(int j=0;j<MAX;j++){
        ch[i][j]=' ';
    }
  }
  scanf("%s",s);
  int len=strlen(s);
  int k;//k=n1和n3
  int max_k=-1;
  int n2,max_n2;
  bool flag=false;
  for(n2=len;n2>=3;n2--){
    for(k=n2;k>=0;k--){
        if(2*k+n2-2==len){
           if(k>max_k){
              max_k=k;
              max_n2=n2;
           }
        }
    }
  }
  k=max_k;
  n2=max_n2;
  int cnt=0;
  for(int i=0;i<k;i++){
    ch[i][0]=s[cnt++];
  }
  for(int j=1;j<=n2-2;j++){
    ch[k-1][j]=s[cnt++];
  }
  for(int i=k-1;i>=0;i--){
    ch[i][n2-1]=s[cnt++];
  }
  for(int i=0;i<k;i++){
    for(int j=0;j<n2;j++){
         cout<<ch[i][j];
    }
    if(i!=k-1){
        cout<<endl;
    }
  }
  return 0;
}
相关标签: PAT甲级