# Basic Simulation# Conditional Statements# Floating-point Arithmetic

e972 - 1. 貨幣轉換 (Currency)

🔗 前往 ZeroJudge 原題

題目描述

題目要求撰寫一個程式,模擬貨幣轉換。程式會接收一個以台幣表示的預算,以及一筆花費的金額和目的地貨幣類型(美元、日元或歐元)。程式需要計算扣除花費後,剩餘的金額,並以目的地貨幣的格式輸出。如果扣除花費後金額為負數,則輸出 "No Money"。

解題思路

這題主要考驗對條件判斷和浮點數運算的掌握。程式根據輸入的目的地貨幣類型,使用相應的匯率將花費金額轉換為台幣,然後從預算中扣除。最後,根據結果判斷是否需要輸出 "No Money",或者將剩餘金額轉換回目的地貨幣並輸出,並注意輸出格式的四捨五入。

複雜度分析

  • 時間複雜度: O(1)
  • 空間複雜度: O(1)

程式碼

#include <stdio.h>
int main(){
	long double a,b;
	char c;
	scanf("%llf%llf %c",&a,&b,&c);
	if(c=='T'){
		if(b>a)
			printf("No Money");
		else{
			a-=b;
			if(a<0.05)
				printf("%c 0.00",c);
			else
				printf("%c %.2llf",c,a);
		}
	}
	else if(c=='U'){
		b*=30.9;
		if(b>a)
			printf("No Money");
		else{
			a-=b;
			a/=30.9;
			if(a<0.05)
				printf("%c 0.00",c);
			else
				printf("%c %.2llf",c,a);
		}
	}
	else if(c=='J'){
		b*=0.28;
		if(b>a)
			printf("No Money");
		else{
			a-=b;
			a/=0.28;
			if(a<0.05)
				printf("%c 0.00",c);
			else
				printf("%c %.2llf",c,a);
		}
	}
	else if(c=='E'){
		b*=34.5;
		if(b>a)
			printf("No Money");
		else{
			a-=b;
			a/=34.5;
			if(a<0.05)
				printf("%c 0.00",c);
			else
				printf("%c %.2llf",c,a);
		}
	}
}

Discussion