酷代码 AI
菜单
服务商

C++实现删数问题,寻找最小新数

以下是解决该删数问题的C++代码: ```cpp #include <iostream> #include <string> using namespace std; int main() { string n; int s; // 读取高精度正整数n cin >> n; // 读取要删除的数字个数s cin >> s; while (s > 0) { int i = 0; // 找到第一个满足n[i] > n[i + 1]的位置 while (i < n.length() - 1 && n[i] <= n[i + 1]) { i++; } // 删除该位置的数字 n.erase(i, 1); s--; } // 去除前导零 int leadingZero = 0; while (leadingZero < n.length() - 1 && n[leadingZero] == '0') { leadingZero++; } n = n.substr(leadingZero); // 若结果为空,输出0 if (n.empty()) { cout << 0 << endl; } else { cout << n << endl; } return 0; } ``` ### 代码解释 1. **输入读取**:使用`cin`读取高精度正整数`n`和要删除的数字个数`s`。 2. **删除数字**:通过循环,每次找到第一个满足`n[i] > n[i + 1]`的位置`i`,并删除该位置的数字,直到删除了`s`个数字。 3. **去除前导零**:遍历字符串`n`,找到第一个非零字符的位置,然后截取从该位置开始的子字符串。 4. **输出结果**:若结果为空,输出`0`;否则,输出结果字符串。 ######[AI问答 | 438点数解答 | 2026-03-07 21:19:13]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]