cho số nguyên dương n (n<10^6). Hãy đếm số lượng các số nguyên dương a nhỏ hơn N thõa điều kiện: a có ít nhất 2 chữ số, a chia hết cho 9 và a có tất cả các chữ số giống nhau.
Cần giúp đỡ ý tưởng code C++ hoặc Python: đếm số lượng số nguyên dương có các chữ số giống nhau và chia hết cho 9
Ý tưởng gì cái này nhỉ, giải ra giấy / hoặc bảng đi
Số lượng là 1, số đó là 99.
Nếu lời giải trên buồn cười, bạn “động não” tí xíu nhé, dùng vòng lặp và điều kiện if. Mình
gợi ý:
đếm = 0
cho i chạy từ 1 đến n, nếu i >= 10 và <= 99 và i % 9 == 0
a = i
nếu a % 10 == (int) a / 10 thì đếm = đếm + 1
Cuối cùng, in ra đếm
Xong!
(Thêm vào ngày 25/7: ủa, chủ topic chơi kỳ ta, sửa đề đến n < 10 mũ 6, vậy thì ra cả tá chứ chả phải chỉ có 1 số 99 hén, nhưng cách giải kia cũng tạm áp dụng được nếu chỉ cho phép xử lý số, còn cho phép chuyển đổi qua lại số - ký tự để tìm các chữ số giống nhau sẽ dễ hơn - nhớ lại kiến thức lớp 3 đặc điểm của một số chia hết cho 9 áp dụng vào).
Hì, mình thiếu điều kiện
Điều kiện đã rất rõ ràng, giải tay nbuw nào thì coi như thế đó thôi
A có tất cả các chữ số giống nhau => A = base * 111…11 ( base = 1 : 9)
Như vậy bạn chỉ cần duyệt:
while ( 1)
i = 11
for (base = 1 : 9 )
A = i * base > N ? break : A % 9 == 0 ? get A : continue
i = i * 10 + 1
(m * số chữ số) chia hết cho 9, với m chạy từ 1 đến 9.