Chúng ta được cho một số, giả sử là N và nhiệm vụ là tìm số lượng các chữ số đó trong một số chia hết cho số N.
Những điểm cần ghi nhớ
-
Nếu chữ số là 0 thì nó nên được bỏ qua có nghĩa là số lượng sẽ không được tăng lên cho 0.
-
Nếu một chữ số xuất hiện hai lần và nó chia cho số đó, thì số đếm sẽ phụ thuộc vào sự xuất hiện của chữ số đó. Ví dụ, chúng ta được cho một số 2240 và trong số này, mọi chữ số ngoại trừ số 0 sẽ chia cho số đó và số 2 xảy ra hai lần thì số đếm sẽ là 2 cho chữ số 2.
Đầu vào - number =2240
Đầu ra - số đếm là 3
Giải thích - Chia số thành các chữ số sẽ được 2, 2, 4, 0. Bây giờ kiểm tra xem 2 chia 2240 nếu có thì tăng số đếm còn lại chuyển sang chữ số tiếp theo, trong số này 2, 2, 4 chia cho chữ số 2240 nên tính sẽ là 3 và bỏ qua chữ số 0 trong mọi trường hợp.
Đầu vào - number =755
Đầu ra - số đếm là 2
Giải thích - Chia số đó thành các chữ số sẽ được 7, 5, 5. Bây giờ hãy kiểm tra xem 7 chia 755 nếu có thì tăng số đếm còn lại chuyển sang chữ số tiếp theo, trong số này 5, 5 chia cho chữ số 755 nên số đếm sẽ là 2 và bỏ qua chữ số 0 trong mọi trường hợp
Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau
-
Nhập số vào một biến số nguyên, giả sử là num
-
Bắt đầu vòng lặp cho đến khi num lớn hơn 0
-
Bên trong vòng lặp, ngắt số thành các chữ số và tiếp tục lưu trữ kết quả trong một biến, giả sử là rem
-
Kiểm tra xem rem chia số nếu có thì tăng giá trị của biến đếm lên 1 và nếu không thì không tăng giá trị của biến đếm.
-
Và câu lệnh kiểm tra này được áp dụng khi rem lớn hơn 0 vì chúng ta phải bỏ qua 0.
Ví dụ
#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; }
Đầu ra
Nếu chúng ta chạy đoạn mã trên, chúng ta sẽ nhận được kết quả sau -
Count of digits in given number 2240 which divide N are: 3