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

求解决“统计能整除N的数字”代码含0时的浮点异常问题

解决统计能整除N的数字个数时的除0错误

你的代码触发Floating-point exception (SIGFPE)错误的核心原因是:当输入数字包含0数位时,循环中会取出m=0,此时执行z%m相当于整数除以0,这是C++中未定义的非法操作,直接引发了异常。

解决方案

在判断整除性之前,先检查当前取出的数位m是否为0,如果是0就跳过该数位的判断(0不能作为除数,且0无法整除任何非零数,不符合统计要求)。

修改后的代码

#include<bits/stdc++.h>
using namespace std; 

int main() {
    int n, m, z;
    cout<<"enter n: ";
    cin>>n;
    z = n;

    int count = 0;
    while(n > 0){
        m = n % 10;
        // 先排除0的情况,再判断整除性
        if(m != 0 && z % m == 0){
            count++;
        }
        n = n / 10;
    }
    cout<<count;
}

逻辑说明

以输入10为例:循环会取出数位1和0,1能整除10,计数加1;0被前置判断跳过,最终输出1,符合预期逻辑。

内容的提问来源于stack exchange,提问作者Nazrul Hoda

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 07:20:41