找到精确划分数字的数字(数字)

时间:2014-08-14 08:27:46

标签: c++ int modulus digits

我正在编写一个程序来查找一个数字的位数,该数字精确地除以该数字(余数= 0)。

例如,对于145.有2个数字分为145,1和5(145%2 = 0,145%1 = 0)。

当数字包含0作为数字时,如102,程序失败。我明白我不能除以零,我试图解决这个问题,但程序仍然无效。关于如何避免除零的任何建议?

#include <iostream>

int main(){
std::cout<<"Enter a number: ";
int n,digit,count=0;
std::cin>>n;

    while(n){
        digit = n%10;
        if(digit==0) continue;
        else{
            if(n%(digit)==0) count++; n /= 10;}
    }

std::cout<<"Number of digits that divide the number: "<<count<<"\n"; count=0;
}

1 个答案:

答案 0 :(得分:0)

    int n , digit, count = 0;
    std::cin >> n;
    int cn = n;

    while (n){

        digit = n % 10;
        n /= 10;

        if (digit == 0) continue;
        else{
            if (cn % (digit) == 0) count++;             
        }

    }