HƯỚNG DẪN GIẢI ĐỀ CƯƠNG ÔN TẬP GIỮA KÌ II – PHẦN TỰ LUẬN – KHỐI 10
Câu 1: So dấu
# Câu 1: So dấu # Khai báo biến A, B là 2 số nguyên nhập vào từ bàn phím. A = int(input("Nhập số nguyên A: ")) B = int(input("Nhập số nguyên B: ")) # Nếu A và B cùng lớn hơn hoặc bằng 0 ; Nếu A và B cùng nhỏ hơn 0 # Thì 2 số A và B là cùng dấu if (A>=0 and B>=0) or (A<0 and B<0): print("Hai số nguyên",A,B,"là cùng dấu") # Ngược lại: Trường hợp sẽ là số A>=0, B<0 hoặc A<0, B>=0 --> 2 số trái dấu else: print("Hai số nguyên",A,B,"là trái dấu")
Câu 2: Tính giai thừa
# Câu 2: Tính giai thừa n! # Khai báo biến A, B là 2 số nguyên nhập vào từ bàn phím. n = int(input("Nhập số nguyên n: ")) # Khởi tạo biến giai thừa. Nếu không khởi tạo biến giai thừa thì # trong vòng for có sử dụng biến giai thừa chương trình sẽ báo lỗi vì # chưa được khai báo biến. gt=1 # Khởi tạo biến gt=1 vì nếu khởi tạo=0 thì trong phép nhân kết quả # cuối cùng sẽ bằng 0. Ban đầu gt=1 thì mọi số nhân với 1 cũng là chính nó # không làm thay đổi kết quả đầu ra của bài toán. # Và 0!=1, 1!=1, khi khai báo gt ban đầu =1 thì nhập số nguyên n=0 hay n=1 # đều cho ra kết quả giai thừa =1, đúng với yêu cầu của phép tính giai thừa. for i in range (1,n+1): # Cho biến i chạy từ 1 đến n+1 (dừng tại n) #nếu biến i là 0 thì phép nhân với 0 sẽ =0, đã nêu ra ở phía trên. gt=gt*i # thực hiện duyệt các phần tử i, mỗi lần duyệt sẽ được nhân vào # biến gt để nhân dồn các giá trị lại. n!=n*(n-1)*(n-2)*...*2*1 # đối với gt=gt*i thì sẽ nhân ngược lại n!=1*2*...(n-2)*(n-1)*n # n-1: để dừng phép lặp tại n. print(gt) # In ra kết quả của giai thừa n!. # Khi test code các bạn nhớ xoá hết phần ghi chú # để nhìn chương trình thuận lợi hơn.
Câu 3: Voi ham ăn
# Câu 3: Voi ham ăn. ''' Ví dụ: Ban đầu gấu E nặng 4kg, gấu A nặng 7kg. Sau mỗi năm GauE tăng 3kg, GauA tăng 2kg. Sau 1 năm trọng lượng sẽ là: GauE = 4*3 = 12 và GauA = 7*2 = 14. Vậy sau 1 năm trọng lượng GauE < GauA. Năm thứ 2: GauE = 4*3*3 = 36 | GauA = 7*2*2 =28 | Khi này TL của GauE > GauA --> Sau 2 năm Gấu Em nặng hơn gấu Anh. Do vậy, ta chỉ cần nhân trọng lượng của Gấu Em với 3 và Gấu Anh với 2 Đến khi nào GauE > GauA thì kết thúc vòng lặp, dừng chương trình. ''' GauE = int(input("Nhập trọng lượng ban đầu của gấu Em: ")) GauA = int(input("Nhập trọng lượng ban đầu của gấu Anh: ")) # Gán biến năm ban đầu bằng 0. nam = 0 # Kiểm tra điều kiện lặp. Dừng vòng lặp đến khi nào GauE > GauA while GauE<=GauA: # Vòng lặp đến khi nào điều kiện sai thì dừng lại. # Nghĩa là khi nào Gấu Anh vẫn nặng hơn hoặc nặng bằng Gấu Em thì # tiếp tục thực hiện lặp. Gấu E > Gấu A mới dừng. GauE = GauE * 3 # Sau mỗi năm Gấu E tăng 3kg GauA = GauA * 2 # Sau mỗi năm Gấu A tăng 2kg # Sau mỗi năm tăng biến năm lên 1. nam = nam + 1 # In kết quả là năm mà Gấu Em nặng hơn Gấu Anh. print("Thời gian mà Gấu Em nặng hơn Gấu Anh là:",nam,"năm.")
Câu 4: Tính tổng giai thừa
# Tính tổng giai thừa: # Sử dụng lại code tính giai thừa của câu 2 để tính giai thừa n = int(input("Nhập số nguyên n: ")) gt=1 tong_gt=0 for i in range (1,n+1): gt=gt*i # Sau khi tính được giai thừa thì cộng dồn các kết quả giai thừa lại. tong_gt=tong_gt+gt # In ra kết quả của n! print(n,"! =",gt) # In ra kết quả của tổng các giá trị của n! print("Tổng giai thừa của",n,"là:",tong_gt)
Câu 5: Số hoàn hảo (Chương trình con)
# Viết chương trình con cho Số hoàn hảo. # Thực hiện tìm số hoàn hảo là số có tổng các ước của n bằng 2 lần giá trị của n. # Ví dụ: Số 6 có các ước: 1,2,3 và 6, tổng các ước này bằng 12 và bằng 2n. # Đưa vào số cần tìm xem có hoàn hảo không. n=int(input("Nhập vào số n: ")) def sohoanhao(n): # Vì xét đến cả giá trị của n (n có ước là n) # nên biến stop dừng lại ở n-1 # Khởi tạo biến tổng ước để khi có ước ta cộng dồn ước lại xem có bằng 2n ko tong_uoc=0 for i in range(1,n+1): # Nếu n chia lấy dư cho i được 0 thì i chính là ước của n. # (Ước của n là số khi n chia hết cho ước) if n%i==0: tong_uoc=tong_uoc+i # Khi tổng các ước = 2 lần n thì nó là số hoàn hảo, ngược lại thì không. if tong_uoc==2*n: print(n,"là số hoàn hảo.") else: print(n,"không phải là số hoàn hảo.") # Lời gọi hàm tìm số hoàn hảo. sohoanhao(n)