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

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.

Ý 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).

4 Likes

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
2 Likes

(m * số chữ số) chia hết cho 9, với m chạy từ 1 đến 9.

4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?