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
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP