e972 - 1. 貨幣轉換 (Currency)
題目描述
題目要求撰寫一個程式,模擬貨幣轉換。程式會接收一個以台幣表示的預算,以及一筆花費的金額和目的地貨幣類型(美元、日元或歐元)。程式需要計算扣除花費後,剩餘的金額,並以目的地貨幣的格式輸出。如果扣除花費後金額為負數,則輸出 "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);
}
}
}