C++ 中统计给定数字 N 中能整除 N 的数字个数
假设给定一个数字 N,任务是找到该数字中能整除 N 的数字的个数。
需要记住的要点
如果数字是 0,则应忽略它,这意味着数字 0 的计数不会增加。
如果一个数字出现两次并且它能整除该数字,那么计数将取决于该数字出现的次数。例如,给定一个数字 2240,在这个数字中,除了 0 之外的每个数字都能整除该数字,并且数字 2 出现了两次,那么数字 2 的计数将为 2。
输入 - 数字 = 2240
输出 - 计数为 3
解释 - 将数字分解成各个数字,结果将是 2、2、4、0。现在检查 2 是否能整除 2240,如果可以,则增加计数,否则移动到下一个数字,在这个数字中,2、2、4 能整除 2240,所以计数将为 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
广告