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
廣告