Giả sử chúng ta có một số n. Chúng ta phải tìm giá trị dương nhỏ nhất x sao cho x chỉ gồm hai chữ số 9 và 0, và x là bội của n.
Vì vậy, nếu đầu vào là n =26, thì đầu ra sẽ là 90090.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- m:=9
- x:=1
- trong khi m không chia hết cho n, do
- x:=x + 1
- m:=thay thế tất cả các số 1 bằng số 9 ở dạng nhị phân của x
- trả về m dưới dạng số nguyên
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
def solve(n): m = 9 x = 1 while m % n != 0: x += 1 m = int(bin(x)[2:].replace('1','9')) return m n = 26 print(solve(n))
Đầu vào
26
Đầu ra
90090