e807 - 2.降雨量統計 (Rainfall statistics)
題目描述
題目要求根據一週七天的每日四個時段的降雨量資料,找出降雨量最多的日子以及降雨量最多的時段。輸入為七行,每行四個浮點數,分別代表上午、下午、晚間和清晨的降雨量。輸出包含降雨量最多的日子(1-7)和降雨量最多的時段(morning, afternoon, night, early morning)。
解題思路
程式碼使用一個二維陣列 a[7][4] 儲存每日四個時段的降雨量。程式遍歷每一天,計算每日的總降雨量,並更新最大降雨量和對應的日期。同時,程式也計算每個時段的總降雨量,並找出最大時段降雨量和對應的時段。最後,程式輸出最大降雨量對應的日期和最大時段降雨量對應的時段。
複雜度分析
- 時間複雜度: O(7 * 4) = O(1)
- 空間複雜度: O(7 * 4) = O(1)
程式碼
#include <iostream>
using namespace std;
double a[7][4],maxa=0,di=0,M,A,N,E,maxb;
int main(){
for(int i=0;i<7;++i){
double diy=0;
for(int j=0;j<4;++j){
cin >> a[i][j];
diy+=a[i][j];
if(diy>maxa){
maxa=diy;
di=i;
}
}
M+=a[i][0];
A+=a[i][1];
N+=a[i][2];
E+=a[i][3];
}
cout << di+1 << "\n";
maxb=max(max(M,A),max(N,E));
if(maxb==M){
cout << "morning";
}
else if(maxb==A){
cout << "afternoon";
}
else if(maxb==N){
cout << "night";
}
else if(maxb==E){
cout << "early morning";
}
}