失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 键盘输入一个高精度的正整数N 去掉其中任意S个数字后剩下的数字按原左右次序将组成一

键盘输入一个高精度的正整数N 去掉其中任意S个数字后剩下的数字按原左右次序将组成一

时间:2020-09-09 21:03:09

相关推荐

键盘输入一个高精度的正整数N 去掉其中任意S个数字后剩下的数字按原左右次序将组成一

算法经典题型12

键盘输入一个高精度的正整数N,去掉其中任意S个数字后剩下的数字按原左右次序将组成一个新的正整数。编程对给定的N和S,寻找一种方案使得剩下的数字组成的新数最小。输入数据均不需判错。输出应包括所去掉的数字的位置和组成的新的正整数(N不超过240位)。

用到的思想—贪心法

博主用到的环境:Win7, CodeBlocks等。

一、代码

#include<iostream>using namespace std;int main() {int k;string s;while (cin >> s >> k) {if (k > s.size()) {cout << "Invalid Input.";continue;}while (k) {int i;for (i = 0; i < s.size() - 1 && s[i] <= s[i + 1]; i++);s.erase(i, 1);k--;}if (s.empty()) {cout << 0 << endl;continue;}int i = 0;for (i = 0; i < s.size()-1;) {if (s[i] == '0') i++;else break;}cout << s.substr(i) << endl;}}

二、测试

总结

谢谢宝宝们的阅读,有问题的话评论@我,没问题的话点个赞再走哦~

键盘输入一个高精度的正整数N 去掉其中任意S个数字后剩下的数字按原左右次序将组成一个新的正整数。编程对给定的N和S 寻找一种方案使得剩下的数字组成的新数最小。(C++)(贪心法)

如果觉得《键盘输入一个高精度的正整数N 去掉其中任意S个数字后剩下的数字按原左右次序将组成一》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。