题面描述
米斯蒂娅的夜雀食堂开业啦!
经营时米斯蒂娅若能做出正确满足顾客词条需求的菜,即可获得一定数量的金额,小费与combo(连击)次数。combo次数越高小费倍率越高,每次获得combo,小费倍率增加0.1,即时生效于当前订单,小费倍率最高为0.5。但是,如果没能让顾客满意,不仅收不到钱,还会断combo(连击数归零)。
米斯蒂娅想知道自己一天的营业额是多少,可她是个鸟脑袋,你能帮助她解决这个问题吗?
小费的数额 = 客人所付的钱 * 小费倍率。
从一位客人身上获得的钱 = 客人所付的钱 + 小费的数额。
输入格式
第一行输入一个整数 n ,表示有 n 个顾客。
接下来 n 行,每行输入1个整数 x ,为每个顾客付的钱。若为0,则表示顾客不满意。
输出格式
输出一天的营业额,结果保留两位小数。
数据范围
\(1 \leq n \leq 100\)
\(0 \leq x \leq 5000\)
输入样例
8
80 20 15 66 0 330 600 89
输出样例
1422.60
题解
需要额外再开两个变量记录combo次数与小费倍率,按题意模拟即可。
#include <bits/stdc++.h>
#include <iostream>
using namespace std;
typedef long long ll;
int n, combo;
double x, rate, res;
int main() {
cin >> n;
for (int i = 1; i <= n; ++i) {
cin >> x;
if (x) {
++combo;
if (combo >= 5) rate = 0.5;
else rate += 0.1;
res += x * (1 + rate);
}
else {
combo = 0;
rate = 0;
}
}
printf("%.2lf\n", res);
return 0;
}
标签:蒂娅,倍率,营业额,rate,米斯,小费,combo
From: https://www.cnblogs.com/wss114514/p/18313013