C++中怎么保留最大的数
发表于:2025-12-04 作者:千家信息网编辑
千家信息网最后更新 2025年12月04日,本篇内容介绍了"C++中怎么保留最大的数"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!题目描述给定一
千家信息网最后更新 2025年12月04日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安全错误
数据库的锁怎样保障安全
湖南高科技互联网游乐园
不同数据库查询速度
tdh是啥数据库
硬件开发软件开发顺序
sqlserver2000数据库备份
c 软件开发教程
数据库r开头的都有什么
软件开发的一般步骤
美业系统软件开发俩字公司名字
网络安全短片心得
php二维数组保存数据库
中国台湾程序软件开发设计
软件测试用哪个软件开发
2021网络安全周内容
西安复华网络技术公司
聊城小米服务器哪个好
联想服务器2021年价格走势
网络安全的了解
校园疫情网络安全ppt
阿里核心技术阿里云数据库芯片
硬件开发软件开发顺序
英雄连2服务器分区
汇科电子网络技术中心
数据库技术及应用难
本地服务器可以打包成镜像吗
中安共生互联网科技财商
无锡网络安全知识竞赛答题
go语言 创建数据库
app服务器是租用好还是
上海质量网络技术服务比较