Chúng ta có hai phần tử, giả sử là d và num, nhiệm vụ là tìm các chữ số d chia hết cho num.
Nói một cách đơn giản, giả sử chúng ta đã đưa ra đầu vào là 2 trong d, vì vậy trước tiên chúng ta sẽ tìm tất cả các số có 2 chữ số, tức là từ 10-99 và sau đó tìm tất cả các số chia hết cho num.
Hãy để chúng tôi hiểu thêm về điều này với sự trợ giúp của các ví dụ -
Đầu vào - chữ số =2, num =12
Đầu ra - Đếm số có n chữ số chia hết cho số đã cho:8
Giải thích - Các số có 2 chữ số chia hết cho 12 là 12, 24, 36, 48, 60, 72, 84 và 96 nên có 8 số có 2 chữ số chia hết cho 12.
Đầu vào - chữ số =2, num =9
Đầu ra - Đếm số có n chữ số chia hết cho số đã cho - 10
Giải thích - Các số có 2 chữ số chia hết cho 9 là 18, 27, 36, 45, 54, 63, 72, 81, 90 và 99 nên có 10 số có hai chữ số chia hết cho 9.
Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau
-
Lấy chữ số và số phần tử làm đầu vào.
-
Gán một biến đếm là 0 để đếm số chữ số chia hết cho num.
-
Khai báo và đặt digi_first dưới dạng pow (10, chữ số - 1)
-
Khai báo và đặt digi_last thành pow (10, chữ số)
-
Bây giờ hãy khai báo và đặt d_first là digi_first% num và d_last là digi_last% num
-
Sau khi tìm thấy d_first và d_last, hãy đặt digi_first là (digi_first - d_first) + num và digi_last là digi_last - d_last
-
Bây giờ, hãy đặt số đếm thành ((digi_last - digi_first) / num + 1).
-
Trả lại và số lượng in.
Ví dụ
#include <cmath> #include <iostream> using namespace std; int main(){ int digit = 2 , num = 9; //store the count int count= 0 ; int digi_first = pow(10, digit - 1); int digi_last = pow(10, digit); int d_first = digi_first % num; int d_last = digi_last % num; digi_first = (digi_first - d_first) + num; digi_last = digi_last - d_last; count = ((digi_last - digi_first) / num + 1); cout<<"Count of n digit numbers divisible by given number: "<<count<<"\n"; 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 n digit numbers divisible by given number: 10