PAT 甲级 1031 Hello World for U
图形输出的模拟题。
胡凡《算法笔记》(第89页)语:“这种题目的做法一般有两种:①通过规律,直接进行输出。②定义一个二维字符数组,通过规律填充之,然后输出整个二维数组。”
#include<bits/stdc++.h>
using namespace std;
char fig[100][100];
int main(){
int a,b;
string s;cin>>s;
a=(s.size()+2)/3,b=s.size()-2*a+2;
for(int i=0;i<a;++i)
for(int j=0;j<b;++j)
fig[i][j]=' ';
int idx=0;
for(int i=0;i<a-1;++i) fig[i][0]=s[idx++];
for(int i=0;i<b-1;++i) fig[a-1][i]=s[idx++];
for(int i=a-1;i>=0;--i) fig[i][b-1]=s[idx++];
for(int i=0;i<a;++i){
for(int j=0;j<b;++j) cout<<fig[i][j];
cout<<"\n";
}
}