Giả sử chúng ta có một số n và một số k khác, chúng ta phải kiểm tra xem tổng các chữ số của n tại đó là số lẻ (từ vế phải sang vế trái) có chia hết cho k hay không.
Vì vậy, nếu đầu vào là n =2416 k =5, thì đầu ra sẽ là Đúng vì tổng các số lẻ được đặt từ phải sang trái là 4 + 6 =10. Số nào chia hết cho 5.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- tổng:=0, pos:=1
- while n> 0, do
- nếu pos là số lẻ, thì
- tổng số:=tổng số + (n mod 10)
- n:=thương số của (n / 10)
- pos:=pos + 1
- nếu pos là số lẻ, thì
- nếu tổng chia hết cho k thì
- trả về True
- trả về Sai
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
Mã mẫu
def solve(n, k): total = 0 pos = 1 while n > 0: if pos % 2 == 1: total += n % 10 n = n // 10 pos += 1 if total % k == 0: return True return False n = 2416 k = 5 print(solve(n, k))
Đầu vào
2416, 5
Đầu ra
True