美元汇率题解:

题目描述
在以后的若干天里戴维将学习美元与德国马克的汇率。编写程序帮助戴维何时应买或卖马克或美元,使他从100美元开始,最后能获得最高可能的价值。
input
5
400
300
500
300
250
output
266.66
注意:输出第一行也是唯一的一行应输出要求的钱数(单位为美元,保留两位小数)。
注意:考虑到实数算术运算中进位的误差,结果在正确结果0.05美元范围内的被认为是正确的,戴维必须在最后一天结束之前将他的钱都换成美元。
这题很简单,就直接给代码了:
var
a:array[1..10000]of longint;
b:array[1..10000]of real;
s,ss:string;
n,i,j,p:longint;
ans,make,america:real;
bz1,bz2:boolean;
begin
readln(n);
for i:=1 to n do
begin
readln(a[i]);
b[i]:=a[i]/100;
end;
ans:=100;
bz1:=true;
for i:=1 to n-1 do
begin
if bz1 then
begin
america:=ans*b[i];
if america/b[i+1]>ans then
begin
ans:=america;
bz1:=false;
bz2:=true;
end;
end;
if bz2 then
begin
america:=ans/b[i];
if america*b[i+1]>ans then
begin
ans:=america;
bz1:=true;
bz2:=false;
end;
end;
end;
if bz2 then
ans:=ans/b[n];
writeln(ans:0:2);
end.

你可能感兴趣的:(美元汇率题解:)