Cho 3 số tự nhiên k,s,m k<7,s<20,m<20, Hãy cho biết có bao nhiêu số tự nhiên có k chữ số có tổng các chữ số bằng s và chia hết cho m Input: trong tệp TIMSO.INP gồm: dòng đầu là số nguyên dương N là số bộ test. N dòng tiếp theo mỗi dòng là một bộ ba số k, s, m Output: ghi ra tệp TIMSO.OUT gồm N dòng mỗi dòng ghi số số tìm được tiếp theo ghi lần lượt các số (trên mỗi dòng các số cách nhau một khoảng bằng một phím tab) (Lập trình C++)
1 câu trả lời
#Tạo function
def TIMSO(k,s,m):
#Khai báo mảng
array = []
#Lặp từ số nhỏ nhất đến số lớn nhất có k chữ số
for n in range(10**(k-1),10**k):
#Nếu số đó chia hết cho m thì tiếp tục, không thì bỏ qua
if n%m==0:
#Gán nhiều giá trị cùng lúc
n, sum = str(n), 0
#Tính tổng các chữ số
for i in range(len(n)): sum += int(n[i])
#nếu tổng các chữ số bằng với số s thì đua vào mảng (Hoặc trong C++ thì in ra)
if sum==s: array.append(n)
#In mảng (Nếu là C++ thì không cần in mảng)
return array
#test case
k,s,m = map(int, input().split())
#In ra kết quả
print(TIMSO(k,s,m))
Câu hỏi trong lớp
Xem thêm