C++中怎么保留最大的数
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本篇内容介绍了"C++中怎么保留最大的数"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!题目描述给定一
千家信息网最后更新 2026年11月03日C++中怎么保留最大的数
本篇内容介绍了"C++中怎么保留最大的数"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
题目描述
给定一个十进制的正整数number,选择从里面去掉一部分数字,希望保留下来的数字组成的正整数最大。
输入描述
输入为两行内容,第一行是正整数number,1 ≤ length(number) ≤ 50000。第二行是希望去掉的数字数量cnt 1 ≤ cnt
输出描述
输出保留下来的结果。
示例
输入
325 1
输出
35
解析
在一个整数中除去几位数字后剩余的数最大。这题的关键就在于我们如何去选择去掉的数字,也就是去掉数字的标准是什么。小白一幵始觉得除去最小的那几位数就可以了,但是这种想法是不对的。例如3120,如果去掉0为312,但是如果去掉1,则是320,要比312要大因此,我们可以判定,单纯的去掉最小的数是不对的。
正确的想法是去掉"比后一位"小的那位数,如果没有比后一位小的数(也就是整个数每一位都是递增的数),直接去掉最后一位;因为需要刪除数,因此使用list容器更加合理一些,而且list允许在首端插入,更加支持了用除以10余数的方法获取取每一位数。这里面要注意一个问题,就是每次只能去掉一个数,之后需要重新去寻找第-个比后一位小的数。
代码
#include
#include
using namespace std;
int main()
{
int number, cnt;
while (cin>>number>>cnt)
{
list Lnumber;
while (number/10!=0)
{
Lnumber.push_front(number % 10);
number = number / 10;
}
Lnumber.push_front(number);
for (int i =0; i < cnt; i++)
{
for (auto m = Lnumber.cbegin(); m != Lnumber.cend(); m++)
{
if (m==(--Lnumber.cend()))
{
m = Lnumber.erase(m);
break;
}
auto n = m;
if (*m<*(++n))
{
m = Lnumber.erase(m);
break;
}
}
}
int lastnumber = 0;
for (auto m:Lnumber)
{
lastnumber = lastnumber * 10 + m;
}
cout << lastnumber << endl;
}
return 0;
}
"C++中怎么保留最大的数"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
数字
最大
整数
输出
内容
输入
C++
不对
最小
个数
也就是
位数
想法
更多
知识
选择
实用
学有所成
接下来
一行
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
湖北九亚互联网络科技有限公司
中关村互联网科技集团
金融科技与互联网金融
互联网的科技创新
互联网 科技创业
互联网科技小额贷款
互联网科技热点资讯
互联网教育科技公司vipkid
深圳市优智互联网科技有限公司
燊美集互联网科技有限公司
保险科技服务互联网营销体系
上海京穆互联网科技有限公司
沐思想互联网科技有限公司
元气玛特互联网科技公司是外包吗
上海钢联属于互联网科技股吗
风投北京互联网科技
互联网公司属于科技吗
互联网金融金融科技
10位科技互联网大佬
河南商务圈互联网科技有限公司
互联网黑科技
互联网与科技金融数据
北京互联网科技有限公司
互联网前沿科技
互联网科技实习生岗位职责
智腾互联网科技有限公司
想开互联网科技公司怎么样
银行科技岗属于互联网吗
易租星互联网科技有限公司
北京品多多互联网科技有限公司