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