文章

4

粉丝

171

获赞

5

访问

16.8k

头像
1340:输出U形
P1340 浙江大学机试题
发布于2022年7月15日 16:53
阅读数 4.1k

根据题意:u型越接近正方形越好

  • 去掉左下角、右下角两个点,使得另外三边长度尽可能相同
  • 将字符串总长len-2之后除以3,对于3中不同的余数情况分类讨论,求得边长
#include
#include
#include
// 1340:u形状输出一个字符串
using namespace std;
char a[30][30];
int main(){
    string s;
    while(cin >> s){
        memset(a, 0, sizeof(a));
        int len = s.length();
        // 计算U型的边缘长度
        len -= 2;
        int m,n;
        if(len%3==0){
            len/=3;
            m = len+1;
            n = len+2;
        }else if(len%3==1){
            len/=3;
            m = len+1;
            n = len+3;
        }else {
            len/=3;
            m = len+2;
            n = len+2;
        }
        // 向下,向右,向上填充
        int i1=0;
        for(int i=1; i<=m; i++){
            a[i][1] = s[i1++];
        }
        for(int j=2; j<=n; j++){
            a[m][j] = s[i1++];
        }
        for(int i=m-1; i>=1; i--){
            a[i][n] = s[i1++];
        }

        for(int i=1; i<=m; i++){
            for(int j=...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发