Viết chương trình nhập vào 12 số nguyên dương tương ứng là tiền điện của 12 tháng trong năm vừa rồi của nhà em, đưa ra màn hình các thông tin sau:
a. Tổng số tiền điện của cả năm, trung bình của mỗi tháng.
b. Liệt kê các tháng dùng nhiều hơn trung bình mỗi tháng
c. Đánh giá độ phức tạp thuật toán
Quảng cáo
2 câu trả lời 188
Dưới đây là một chương trình Python để giải quyết yêu cầu của bạn:
`python
def main():
# Nhập số tiền điện của từng tháng trong năm
electricity_bills = []
for i in range(1, 13):
bill = int(input(f"Nhập số tiền điện của tháng {i}: "))
electricity_bills.append(bill)
# a. Tính tổng số tiền điện của cả năm và trung bình của mỗi tháng
total_bill = sum(electricity_bills)
average_per_month = total_bill / 12
print(f"Tổng số tiền điện của cả năm: {total_bill}")
print(f"Trung bình mỗi tháng: {average_per_month}")
# b. Liệt kê các tháng dùng nhiều hơn trung bình mỗi tháng
above_average_months = [i+1 for i in range(12) if electricity_bills[i] > average_per_month]
if above_average_months:
print("Các tháng dùng nhiều hơn trung bình mỗi tháng:")
for month in above_average_months:
print(f"Tháng {month}")
else:
print("Không có tháng nào dùng nhiều hơn trung bình mỗi tháng")
if __name__ == "__main__":
main()
`
**Đánh giá độ phức tạp thuật toán:**
- Thuật toán này có độ phức tạp là O(n), trong đó n là số lượng tháng trong năm (ở đây là 12). Quá trình nhập dữ liệu, tính tổng số tiền điện của cả năm và trung bình mỗi tháng đều chỉ đòi hỏi lặp qua tất cả các phần tử một lần. Do đó, độ phức tạp không tăng khi số lượng tháng tăng.
Dưới đây là một chương trình Python để giải quyết yêu cầu của bạn:
```python
def main():
# Nhập số tiền điện của từng tháng trong năm
electricity_bills = []
for i in range(1, 13):
bill = int(input(f"Nhập số tiền điện của tháng {i}: "))
electricity_bills.append(bill)
# a. Tính tổng số tiền điện của cả năm và trung bình của mỗi tháng
total_bill = sum(electricity_bills)
average_per_month = total_bill / 12
print(f"Tổng số tiền điện của cả năm: {total_bill}")
print(f"Trung bình mỗi tháng: {average_per_month}")
# b. Liệt kê các tháng dùng nhiều hơn trung bình mỗi tháng
above_average_months = [i+1 for i in range(12) if electricity_bills[i] > average_per_month]
if above_average_months:
print("Các tháng dùng nhiều hơn trung bình mỗi tháng:")
for month in above_average_months:
print(f"Tháng {month}")
else:
print("Không có tháng nào dùng nhiều hơn trung bình mỗi tháng")
if __name__ == "__main__":
main()
```
**Đánh giá độ phức tạp thuật toán:**
- Thuật toán này có độ phức tạp là O(n), trong đó n là số lượng tháng trong năm (ở đây là 12). Quá trình nhập dữ liệu, tính tổng số tiền điện của cả năm và trung bình mỗi tháng đều chỉ đòi hỏi lặp qua tất cả các phần tử một lần. Do đó, độ phức tạp không tăng khi số lượng tháng tăng.
Quảng cáo
Bạn cần hỏi gì?
Câu hỏi hot cùng chủ đề
-
Đã trả lời bởi chuyên gia
86297
