You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用C++结合do while语句实现从数字中删除指定数字

C++ 基于do while语句实现数字指定位删除方案

可以实现,核心思路是逐位拆解原数字,过滤掉要删除的位后重新拼接为新数字,用do while循环保证哪怕输入数字为0也能至少执行一次位处理逻辑。

实现代码

#include <iostream>
using namespace std;

int main() {
    long long n; // 用long long避免大数字溢出
    int del_num;
    cout << "请输入原数字:";
    cin >> n;
    cout << "请输入要删除的数字(0-9):";
    cin >> del_num;
    
    // 校验删除的数字是否合法
    if (del_num < 0 || del_num > 9) {
        cout << "要删除的数字必须是0-9的单个整数" << endl;
        return 1;
    }
    
    long long res = 0;
    long long weight = 1; // 位权重,初始为个位权重1
    long long temp = n; // 用临时变量操作,不修改原输入
    
    do {
        int current_bit = temp % 10;
        if (current_bit != del_num) {
            res += current_bit * weight;
            weight *= 10;
        }
        temp = temp / 10;
    } while (temp != 0); // 直到所有位处理完毕停止循环
    
    cout << "处理后的结果为:" << res << endl;
    return 0;
}

核心逻辑说明

  • 用临时变量存储原数字,避免修改原始输入值
  • 每次取临时变量的最后一位(temp % 10)做判断:如果不是要删除的数字,就将该位乘以当前位权重累加到结果中,同时权重乘以10进位;如果是要删除的数字则直接跳过,权重保持不变
  • 每次处理完一位后将临时变量除以10,移除已经处理过的最后一位
  • do while循环会先执行一次位处理逻辑,再判断临时变量是否为0,保证输入数字为0的场景也能正常处理

运行示例

  • 输入原数字10200、待删除数字2,输出结果:1000
  • 输入原数字1234、待删除数字3,输出结果:124

内容的提问来源于stack exchange,提问作者mohammad j bakhshi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 08:15:01