日期:2025年2月7日
ZeroJudge 題目連結:e807. 2.降雨量統計 (Rainfall statistics)
解題想法
這題如果會用取最大值及找索引值的工具會很好寫 。
Python 程式碼
使用時間約為 26 ms,記憶體約為 3.3 MB,通過測試。
week = [0]*7 # 一週 7 天每天的累積雨量
quater = [0]*4 # 一天內 4 個時段的累積雨量
for i in range(7): # 讀取 7 天的雨量
M, A, N, E = map(float, input().split())
week[i] = M + A + N + E # 一天的累積雨量
quater[0] += M; quater[1] += A # 更新 4 個時段的累積雨量
quater[2] += N; quater[3] += E
print(week.index(max(week)) + 1) # 印出累積雨量最多的是星期幾,要加 1
name = ("morning", "afternoon", "night", "early morning") # 時段對應的名稱
print(name[quater.index(max(quater))]) # 印出時段名稱
C++ 程式碼
使用時間約為 2 ms,記憶體約為 356 kB,通過測試。
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main() {
ios::sync_with_stdio(0); cin.tie(0);
float week[7] = {0}, quater[7] = {0}; // 一週 7 天每天的累積雨量,一天內 4 個時段的累積雨量
for(int i=0; i<7; i++) { // 讀取 7 天的雨量
float M, A, N, E; cin >> M >> A >> N >> E;
week[i] = M + A + N + E; // 一天的累積雨量
quater[0] += M; quater[1] += A; // 更新 4 個時段的累積雨量
quater[2] += N; quater[3] += E;
}
cout << max_element(week, week+7) - week + 1<< "\n"; // 印出累積雨量最多的是星期幾,要加 1
string name[4] = {"morning", "afternoon", "night", "early morning"}; // 時段對應的名稱
cout << name[max_element(quater, quater+4) - quater] << "\n"; // 印出時段名稱
return 0;
}
沒有留言:
張貼留言