j030 - 11945 - Financial Management
題目描述
題目要求計算 Michael 一年內 (12 個月) 銀行賬戶餘額的平均值,並按照指定的格式輸出結果。格式包括數據編號、美元符號、千位數分隔符號 (逗號) 以及小數點後兩位。
解題思路
程式碼首先讀取測試案例的數量 t。然後,對於每個測試案例,程式碼讀取 12 個月份的銀行餘額,計算這些餘額的總和,並除以 12 得到平均餘額。最後,程式碼根據平均餘額的大小,使用不同的格式化方式輸出結果。如果平均餘額大於或等於 1000.0,則使用千位數分隔符號。
複雜度分析
- 時間複雜度: O(t * 12) (t 是測試案例數量,12 是月份數量)
- 空間複雜度: O(1) (程式碼只使用少數幾個變數來儲存數據,空間使用量不隨輸入大小變化)
程式碼
#include <iostream>
#include <cmath>
using namespace std;
int t;
int main(){
cin >> t;
for(int ca=1;ca<=t;++ca){
double s=0,x;
for(int i=0;i<12;++i){
cin >> x;
s+=x;
}
s/=12.0;
if(s>=1000.0){
if(s-((int)s)/1000*1000>=100)
printf("%d $%d,%.2f\n",ca,(int)s/1000,s-(int)(s/1000)*1000);
else if(s-((int)s)/1000*1000>=10)
printf("%d $%d,0%.2f\n",ca,(int)s/1000,s-(int)(s/1000)*1000);
else
printf("%d $%d,00%.2f\n",ca,(int)s/1000,s-(int)(s/1000)*1000);
}
else printf("%d $%.2f\n",ca,s);
}
}