1031 Hello World for U

该程序读取一个字符串并按特定的U型格式输出。它首先寻找合适的n1、n2、n3值,然后分别处理字符串的边缘和中心部分,用空格填充以形成U型。代码主要涉及字符串操作和循环控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1031 Hello World for U

题目大意

输入一个字符串,输出该字符串的一个u型格式

算法思想

  • 这道题比较难的部分应该就是找n1,n2,n3的部分,可以直接根据题目给出的算法之间列出来就行
  • 注意空格是随着n2变化
  • 无特殊点

代码

#include<iostream>
using namespace std;
int main() {
	int maxn = -1, k, n2, i, j;
	string s;
	cin >> s;
	for (n2 = 3; n2 <= s.size(); n2++) {//寻找n1,n2,n3的值
		for (k = 0; k <= n2; k++) {
			if (k * 2 + n2 - 2 == s.size() && k>maxn)
				maxn = k;
		}
	}
	n2 = s.size() + 2 - maxn * 2;
	for (i = 0, j = s.size() - 1; i < maxn - 1; i++, j--) {//输出u型
		cout << s[i];
		for (int l = 0; l < n2 - 2; l++)//空格随着n2变化
			cout << " ";
		cout<< s[j] << endl;
	}
	for (; i <= j; i++)//输出n2部分
		cout << s[i];
	return 0;
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值