最大整数贪心算法c语言,【贪心算法】最大整数

本文介绍了如何使用C++编程实现贪心算法来连接多个正整数,形成一个最大的多位整数。核心算法是通过比较每个整数连接后的值,将较大的整数放在前面,从而得到全局的最大整数。文中还总结了C++中将整数转换为字符串、字符串连接及比较等关键知识点。

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

题目:

设有n个正整数,将它们连接成一排,组成一个最大的多位整数。

例如:n=3时,3个整数13,312,343,连成的最大整数为34331213。

又如:n=4时,4个整数7,13,4,246,连成的最大整数为7424613。

输入:

n

输入n个数。

输出:

连成的多位数。

思路:

让这几个数排排序连接成最大的整数,所以应考虑,各个整数顺序,那么对这几个整数排序的准则是什么?

准则:设两个整数是a,b,如果a+b大于b+a,那么a在b的前面,反之,b在a前面也就是局部的解

全局的解就是所有整数的连接顺序,既然要用到连接所以用string。

#include #include#include#include

using namespacestd;string str[3] = {""};string GetStrFromInt(intn)

{

stringstream ss;strings;

ss<

ss>>s;returns;

}string GreedyAlgorithm(intn)

{int arr[4] = { 0};string strmax = "";

cout<< "Please Input the Data:&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值