C6-06 · Biên độ nhiệt

Xem dạng PDF

Gửi bài giải

Điểm: 1,00
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Tác giả:
Nguồn bài:
Sách "Lập trình cơ sở với Python"
Dạng bài
Ngôn ngữ cho phép
Python

Đề

Cho nhiệt độ cao nhất của 7 ngày liên tiếp (số thực, độ C). Hãy in:

  1. biên độ nhiệt của tuần: nhiệt độ cao nhất trừ nhiệt độ thấp nhất trong 7 số, với đúng 1 chữ số thập phân;
  2. mọi ngày (đánh số từ 1 đến 7) đạt nhiệt độ cao nhất, tăng dần.

Dữ liệu vào

Một dòng gồm 7 số thực ~t_1, t_2, \ldots, t_7~, cách nhau một dấu cách. Mỗi số viết dạng số nguyên (31) hoặc có đúng một chữ số thập phân (34.5).

Kết quả

  • Dòng 1: biên độ nhiệt ~\max t_i - \min t_i~, đúng 1 chữ số thập phân.
  • Dòng 2: các ngày ~i~ có ~t_i~ bằng nhiệt độ cao nhất, tăng dần, cách nhau một dấu cách.

Ràng buộc

  • ~-50 \le t_i \le 60~, tối đa một chữ số thập phân.

Ví dụ

Dữ liệu vào:

31 34.5 29 34.5 33 30 32

Kết quả:

5.5
2 4

Giải thích ví dụ

Cao nhất là 34,5 độ, thấp nhất là 29 độ, biên độ ~34{,}5 - 29 = 5{,}5~. Nhiệt độ 34,5 xuất hiện ở ngày 2 và ngày 4.

Lưu ý

  • Đọc bằng float, không phải int (có số 34.5), và không để nguyên chuỗi (so chuỗi thì "9" > "34.5").
  • Nên in bằng f"{bd:.1f}" (cách khuyên dùng; print(round(bd, 1)) cũng được chấp nhận vì dữ liệu có tối đa 1 chữ số thập phân). Cái sai là print(bd) không làm tròn: phép trừ số thực có thể cho 0.1999999999999993 thay vì 0.2; và khi mọi số là số nguyên, biên độ vẫn phải in 5.0.
  • In mọi ngày đạt cao nhất, không chỉ ngày đầu; nhiệt độ có thể âm.

Nguồn trong sách: Bài C6-06, mục 6.12, giáo trình Lập trình cơ sở với Python — TS. Nguyễn Quốc Long · Mức: (**)


Đang tải...