Discuz! Board

 找回密码
 立即注册
查看: 387|回复: 1

20230528报数游戏作业修订

[复制链接]

574

主题

758

帖子

243万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2435189

烈空座 Lv:100
发表于 2023-5-28 13:50:45 | 显示全部楼层 |阅读模式
[C++] 纯文本查看 复制代码
#include<bits/stdc++.h>
using namespace std;
void bs(string n)//不需要返回值
{
        int len=n.length();
        if(len==1) 
        {
                cout<<n;//直接输出
                return;
        }
        string l=n.substr(0,len/2);
        string r=n.substr((len/2)+1,len/2);//这里的起始点写错了,要+1
        string m=n.substr(len/2,1);
        bs(l);//这里直接调用,不用+起来
        bs(r);
        cout<<m;
        
}
int main()
{
        string n;
        cin>>n;
        bs(n);
        return 0;
}

回复

使用道具 举报

574

主题

758

帖子

243万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2435189

烈空座 Lv:100
 楼主| 发表于 2023-5-28 13:54:16 | 显示全部楼层
[C++] 纯文本查看 复制代码
#include<bits/stdc++.h>
using namespace std;
string bs(string n)
{
	int len=n.length();
	if(len==1) return n;
	string l=n.substr(0,len/2);
	string r=n.substr((len/2)+1,len/2);//这里的起始点写错了,要+1
	string m=n.substr(len/2,1);
	return bs(l)+bs(r)+m;//用你的方法 这里改成+m 
	
}
int main()
{
	string n;
	cin>>n;
	cout<<bs(n);
	return 0;
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|DiscuzX

GMT+8, 2025-2-13 05:13 , Processed in 0.051513 second(s), 28 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.. 技术支持 by 巅峰设计

快速回复 返回顶部 返回列表