C++中怎么保留最大的数
发表于:2025-01-27 作者:千家信息网编辑
千家信息网最后更新 2025年01月27日,本篇内容介绍了"C++中怎么保留最大的数"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!题目描述给定一
千家信息网最后更新 2025年01月27日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安全错误
数据库的锁怎样保障安全
服务器cpu 排行
广州嘉荣互联网科技有限
海南邵赢网络技术有限公司公众号
明星数据库公司
如何实现数据库随机查询
数据库连接关系哈希链接
智能交通软件开发公司
鼎锐网络技术有限公司怎么样
河北流媒体服务器
工具贸易软件开发价格
二手商店数据库课设
网络技术能自学吗
互联网金融和金融科技
吸烟与网络技术
我国网络安全形式严峻
内心喜欢软件开发
高台县网络安全大队
黑客在服务器上开后门的
崇明区智能化软件开发服务介绍
ftp服务器版 软件下载
设备在运行中能不能重启服务器
网络安全四个坚持内容简短
网页直接加载所有数据库
普通主机和服务器的区别
网络安全肉鸡是什么
二本比较好的软件开发大学
海南网络技术转让信息中心
怎么隐藏表格公式和数据库
漳州市嵘胜软件开发有限公司
戴尔服务器ubuntu花屏