SLO

caochenshuo 2023-11-25 13:38:21 2023-11-25 16:26:38 2 返回题目

通过观察测试点
可以发现: 当持有美元(代码中为"dollor")时,若当天汇率大于或等于明天汇率,则将美元转化为马克 当持有马克(代码中为"mark")时,若当天汇率小于或等于明天汇率,则将马克转化为美元
代码如下:

#include <bits/stdc++.h>
using namespace std;
int n;
double a[101], m = 100.00;
bool b = true;  // true=>dollor  false=>mark
int main() {
    cin >> n;
    for (int i = 1; i <= n; i++) {
        cin >> a[i];
    }
    for (int i = 1; i <= n; i++) {
        if (i == n && !b)
            m /= (a[i] / 100.00);
        else if (i == n && b)
            break;
        else if (b && a[i] >= a[i + 1])
            m *= (a[i] / 100.00), b = false;
        else if (!b && a[i] <= a[i + 1])
            m /= (a[i] / 100.00), b = true;
    }
    printf("%.2lf", m);
    return 0;
}
{{ vote && vote.total.up }}