Dựa vào lời giải của Câu 20.9, em hãy viết chương trình giải bài toán gà và chó tổng quát với tổng số gà và chó là m và tổng số chân là n được nhập vào từ bàn phím. Lưu ý: Trong trường hợp tổng quát, không phải với bất kì cặp số m và n nào bài toán cũng có lời giải. Ví dụ nếu m = 2, n = 10 bài toán vô nghiệm.
Nếu kí hiệu k là số gà thì số chó sẽ là m – k. Lời giải của bài toán chính là giá trị k thoả mãn điều kiện k × 2 + (m – k) × 4 = n. Trong chương trình, ta sẽ sử dụng biến co_nghiem để ghi nhận việc xác định được lời giải. Giá trị ban đầu của co_nghiệm được gán bằng False, khi tìm ra nghiệm thì giá trị của nó được đổi thành True.
Chương trình có thể viết như sau:
print("GIẢI BÀI TOÁN GÀ VÀ CHÓ TỔNG QUÁT")
print("Vừa gà vừa chó")
print("Bó lại cho tròn")
print("Có đúng m con")
print("Tròn n chân chẵn")
print("Hỏi có mấy gà, mấy chó?")
co_nghiem=False
m = int(input("Tổng số gà và chó là: "))
n = int(input("Tổng số chân là: "))
for k in range(m + 1) :
if ((k * 2 + m - k) * 4) == n):
print("Số gà là: ", k)
print("Số chó là: ", m - k)
co_nghiem = True
if co_nghiem==False:
print("Bài toán có " , m, "gà và chó với ", n, " chân vô nghiệm!")
Gói VIP thi online tại VietJack (chỉ 400k/1 năm học), luyện tập gần 1 triệu câu hỏi có đáp án chi tiết
Cho đoạn chương trình sau:
sum=0
for i in range(1,11):
sum=sum+i*i
print(sum)
a) Kết quả thực hiện các câu lệnh trên là gì?
Lập trình giải bài toán dân gian TRĂM TRÂU TRĂM CỎ:
"Trâu đứng ăn năm
Trâu nằm ăn ba
Lụ khụ trâu già
Ba con một bó
Trăm con ăn cỏ
Trăm bó no nê.
Hỏi có bao nhiêu trâu đứng, trâu nằm, trâu già?".
Viết chương trình tính tổng các số tự nhiên chẵn và tổng các số tự nhiên lẻ không vượt quá n (n là một số tự nhiên được nhập vào từ bàn phím).
Viết chương trình giải bài toán dân gian:
"Vừa gà vừa chó
Bó lại cho tròn
Ba mươi sáu (36) con
Một trăm (100) chân chẵn
Hỏi có mấy gà mấy chó?".
Viết chương trình nhập số tự nhiên n từ bàn phím rồi tính tổng và tích các số thực sự của n (số k là ước số thực sự của n nếu n%k = 0, k < n).
Hãy viết câu lệnh range cho kết quả là các dãy số sau:
a) 0, 1, 2, 3, ..., 11.
Viết chương trình nhập vào từ bàn phím số tự nhiên n và tính tổng:
S = 1 + 1/2 + 1/3 + ... + 1/n
b) Nếu thay câu lệnh for i in range(1,11) bằng câu lệnh for i in range(11) thì kết quả thu được có thay đổi không? Vì sao?
Em hãy viết chương trình giải bài toán có m trâu, n bó cỏ, mỗi trâu đứng ăn k1 bó cỏ, trâu nằm ăn k2 bó cỏ, k3 trâu già ăn 1 bó cỏ.
Kết quả thực hiện câu lệnh for dưới đây là gì?
for i in range(10):
print(i*i)
Viết chương trình nhập vào từ bàn phím số tự nhiên n và tính tổng:
S = 1 × 2 + 2 × 3 + 3 × 4 + ... + (n − 1) × n.
Điểm tổng kết trung bình năm học được tính theo công thức có dạng:
(diem 1 × heso1 + diem2 × heso2 + ... + diemk × hesok)/(heso 1 + heso 2 + ... + hesok). Viết chương trình tính điểm trung bình của em, trong đó số môn học k, điểm số từng môn và hệ số tương ứng được nhập vào từ bàn phím.
Câu hỏi mở rộng: Có thể thay câu lệnh:
diem = float(input("Điểm môn thứ "+str(i)+ ": "))
bằng câu lệnh:
diem = float(input("Điểm môn thứ ", i , ": "))
được không?