计算给定数字N中的数字,这些数字在C ++中除以N

我们给定一个数字N,而任务是找到将数字N除以数字后的位数。

要记住的要点

  • 如果数字为0,则应将其忽略,这意味着不会为0增加计数。

  • 如果一个数字出现两次并将其除以数字,则计数将取决于该数字的出现。例如,给我们一个数字2240,在该数字中,每个数字(除0之外)将数字除以2,并且2出现两次,然后数字2的计数为2。

输入-数字= 2240

输出-计数为3

说明-将数字分解为数字,它将是2、2、4、0。现在检查是否2除以2240,如果是,则增加计数,否则移至下一位,在此数字2、2、4中将数字2240除以。 count将为3,并且在每种情况下都将忽略数字0。

输入-数字= 755

输出-计数为2

说明-将数字分解为数字,它将是7、5、5。现在检查是否将7除以755,如果是,则增加计数,否则移到下一位,在该数字5、5中将数字除以755,所以计数将为2并在任何情况下都忽略数字0

以下程序中使用的方法如下

  • 在整数变量中输入数字,例如num

  • 开始循环直到num大于0

  • 在循环中,将数字分解为数字,然后将结果继续存储在变量中,比如说rem

  • 检查rem是否将数字除以是,然后将计数变量的值加1,否则将不增加计数变量的值。

  • 当rem大于0时,将应用此检查语句,因为我们必须忽略0。

示例

#include <bits/stdc++.h>
using namespace std;
int count(int num){
   int a=num;
   int count=0,rem;
   while(a>0){
      rem=a%10;
      if(rem > 0){
         if(num%rem==0){
            count++;
         }
      }
      a=a/10;
   }
   return count;
}
int main(){
   int num = 2240;
   cout<<"Count of digits in given number "<<num<<" which divide N are: "<<count(num);
   return 0;
}

输出结果

如果运行上面的代码,我们将获得以下输出-

Count of digits in given number 2240 which divide N are: 3