塔子哥的数字-美团2023笔试(codefun2000)

题目链接
塔子哥的数字-美团2023笔试(codefun2000)

题目内容

塔子哥是一个数学爱好者,他经常思考各种数字之间的奥秘。今天,他想要解决一个有趣的问题:如何在一个数字中插入一个数字,以得到最大的结果?
他发现这个问题很有挑战性,因为他必须找到一种方法,能够在给定的数字中插入一个数字,使得插入后的结果最大。于是,他开始思考并设计了一种算法来解决这个问题。
算法的核心思想是:首先将第一个数字转化为字符串,然后将第二个数字插入到字符串的不同位置,得到多个可能的结果。最后,从中选择最大的一个数字作为最终的结果。
塔子哥已经写好了这个算法,并请你帮忙测试一下。请编写一个程序,输入塔子哥手上的两个数字,输出插入后得到的最大数字。(前导零正常输出)

输入描述

第一行三个整数,以空格分开,分别表示

输出描述

对于每组数据,输出一行,包括一个整数,得到最大的整数。

样例1

输入

5
123456 8
58264 2
44 5
10086 0
8 0

输出

8123456
582642
544
100860
80

题解1

#include<bits/stdc++.h>
using namespace std;
const int N = 5e4+10;
int t;
char a[N], b;

int main(){
	scanf("%d", &t);
	while(t--){
		memset(a, 0, sizeof a);
		scanf("%s %c", a + 1, &b);
		bool flag = true; // 用来判断字符b是否小于或等于字符串a中任何一个字符
		int n = strlen(a + 1);
		for(int i = 1; i <= n; i++){
			if(a[i] < b && flag){
				printf("%c", b);
				flag = false;
			}
			printf("%c", a[i]);
		}
		if(flag) printf("%c", b);  // 字符b小于或等于字符串a中的任何一个字符 
		printf("\n");
	}
	return 0;
}
  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值