(Java实现) 美元汇率
時(shí)空限制 1000ms/128MB
題目背景
此處省略maxint+1個(gè)數(shù)
題目描述
在以后的若干天里戴維將學(xué)習(xí)美元與德國馬克的匯率。編寫程序幫助戴維何時(shí)應(yīng)買或賣馬克或美元,使他從100美元開始,最后能獲得最高可能的價(jià)值。
輸入輸出格式
輸入格式:
輸入文件的第一行是一個(gè)自然數(shù)N,1≤N≤100,表示戴維學(xué)習(xí)匯率的天數(shù)。
接下來的N行中每行是一個(gè)自然數(shù)A,1≤A≤1000。第i+1行的A表示預(yù)先知道的第i+1天的平均匯率,在這一天中,戴維既能用100美元買A馬克也能用A馬克購買100美元。
輸出格式:
輸出文件的第一行也是唯一的一行應(yīng)輸出要求的錢數(shù)(單位為美元,保留兩位小數(shù))。
注意:考慮到實(shí)數(shù)算術(shù)運(yùn)算中進(jìn)位的誤差,結(jié)果在正確結(jié)果0.05美元范圍內(nèi)的被認(rèn)為是正確的,戴維必須在最后一天結(jié)束之前將他的錢都換成美元。
輸入輸出樣例
輸入樣例#1:
5
400
300
500
300
250
輸出樣例#1:
266.67
說明
樣例解釋 (無需輸出)
Day 1 … changing 100.0000 美元= 400.0000 馬克
Day 2 … changing 400.0000 馬克= 133.3333 美元
Day 3 … changing 133.3333 美元= 666.6666 馬克
Day 5 … changing 666.6666 馬克= 266.6666 美元
import java.util.Scanner;public class meiyuanhuilv {public static void main(String[] args) {Scanner sc =new Scanner(System.in);int n = sc.nextInt();double money=100;int [] num = new int [n+1];int temp = 0;//0時(shí)兌換馬克,1時(shí)兌換美元for (int i = 1; i < num.length; i++) {num[i]=sc.nextInt();}for (int i = 1; i < num.length-1; i++) {if(i==num.length-2 && temp==0){if(num[i]>num[i+1]){money *=num[i];money/=num[i+1];}else{break;}}if(i==num.length-2 && temp==1){int a = Math.min(num[i], num[i+1]);money /=a;break;}if(temp==0){if(num[i+1]>num[i]){continue;}else{money=money*num[i];temp=1;}}else if(temp==1){if(num[i+1]<num[i]){continue;}else{money = money/num[i];temp=0;}}}System.out.printf("%.2f",money);}}
總結(jié)
以上是生活随笔為你收集整理的(Java实现) 美元汇率的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Untiy导入package时报错
- 下一篇: Python Level 4 程序题:布