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

如何用C++统计用户输入的4位整数中数字1的出现次数

C++ 统计4位整数中1出现次数的实现方案

前置修正

你现有代码的条件判断中使用了单&(按位与运算符),此处逻辑需要用双&&(逻辑与运算符),避免出现非预期的判断结果。

两种实现思路

  • 思路1:数值逐位拆解法
    已经确认输入为4位整数的前提下,可以通过取模、除法操作逐位取出数字判断:
    1. 初始化计数器为0
    2. 用临时变量 % 10取出当前数字的最后一位,判断是否等于1,符合条件则计数器+1
    3. 执行临时变量 /= 10丢弃已经判断过的最后一位
    4. 重复上述操作4次即可得到最终统计结果
  • 思路2:字符串遍历法
    直接将整数转为字符串,遍历每个字符判断是否为'1'即可,代码实现更简洁,不需要做数值运算。

可运行的完整代码示例

逐位拆解版本

#include <iostream>
using namespace std;

int main() {
    int num;
    cout << "请输入一个4位整数:" << endl;
    cin >> num;

    if (num > 999 && num < 10000) {
        int count = 0;
        int temp = num; // 用临时变量操作,保留原输入num的值
        for (int i = 0; i < 4; i++) {
            if (temp % 10 == 1) {
                count++;
            }
            temp /= 10;
        }
        cout << "数字中1的出现次数为:" << count << endl;
    } else {
        cout << "您输入的不是4位整数。" << endl;
    }
    return 0;
}

字符串遍历版本

需要引入<string>头文件使用字符串相关工具:

#include <iostream>
#include <string>
using namespace std;

int main() {
    int num;
    cout << "请输入一个4位整数:" << endl;
    cin >> num;

    if (num > 999 && num < 10000) {
        int count = 0;
        string num_str = to_string(num);
        for (char c : num_str) {
            if (c == '1') {
                count++;
            }
        }
        cout << "数字中1的出现次数为:" << count << endl;
    } else {
        cout << "您输入的不是4位整数。" << endl;
    }
    return 0;
}

内容的提问来源于stack exchange,提问作者Santiago Uribe Gil

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 16:27:03