# Basic Math# Formatting# Input/Output

j030 - 11945 - Financial Management

🔗 前往 ZeroJudge 原題

題目描述

題目要求計算 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);
	}
}

Discussion