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