题意:给出一串字符串 至少含有5个 构成U字型 题解:本题难度不大,纯粹在玩循环和数组遍历,只要确定左右两边的字符相等,等于底边的最大值,且尽可能的大就行,具体方式就是字符串大小+2除3就是左右字符的大小,能够保证最大,剩下的就安排给底部就行了。 详细代码样例:
using namespace std;
int main(){
string character;
cin>>character;
char str1[82][82];
for(int i=0;i<82;i++){
for(int j=0;j<82;j++){
str1[i][j] = ' ';
}
}
int num = (character.size()+2)/3;
int max = character.size()-2*num;
for(int i=0;i<num;i++){//竖着左边从0到num-1
str1[i][0] = character[i];
}
for(int i=num,j=1;j<max+1;i++,j++){//横着 从1到max
str1[num-1][j] = character[i];
}
int j = num-1;
for(int i=num+max;i<character.size();i++,j--){//竖着 右边从num-1往上到0
str1[j][max+1] = character[i];
}
for(int a=0;a<num;a++){
for(int b=0;b<max+2;b++){
cout<<str1[a][b];
}
cout<<endl;
}
}
|