🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员
💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导
✨ 本系列打算持续跟新 秋招笔试题
👏 感谢大家的订阅➕ 和 喜欢💗
本场题目难度不大,第一题是 签到题,第二题 找规律,第三题可以 猜结论
🫐 01.LYA的咖啡店问题描述LYA开了一家深受欢迎的咖啡店。由于店铺规模有限,顾客需要排队等候。每位顾客的点单和制作时间不同,范围在 分钟之间。LYA想知道,作为第 位顾客,预计期望需要等待多长时间才能拿到自己的咖啡。
输入格式输入一行,包含三个整数 、 和 ,分别表示顾客的位置、最短制作时间和最长制作时间。
输出格式输出一个浮点数,表示预期等待时间。结果四舍五入保留到小数点后一位。
样例输入12 1 5样例输出13.0样例1说明LYA是第 2 位顾客,前面只有 1 位顾客,该顾客的制作时间在 之间,平均等待时间为 3 分钟。
样例输入25 1 1样例输出24.0样例2说明LYA是第 5 位顾客,前面有 4 位顾客,每位顾客的制作时间都是 1 分钟,需要等待 4 分钟。
样例输入35 1 2样例输出36.0样例3说明LYA是第 5 位顾客,前面有 4 位顾客,每位顾客的制作时间在 之间,期望等待时间是 分钟。
样例输入46 1 2样例输出47.5样例4说明LYA是第 6 位顾客,前面有 5 位顾客,每位顾客的制作时间在 之间,期望等待时间是 分钟。
数据范围,
题解这个问题可以通过计算期望值来解决。每位顾客的制作时间在 之间均匀分布,因此平均制作时间为 。
LYA作为第 位顾客,需要等待前 位顾客的制作完成。因此,总的期望等待时间为:
计算出这个值并保留一位小数即为答案。
参考代码 Pythonn, x, y = map(int, input().split())wait_time = (n - 1) * (x + y) / 2print(f"{wait_time:.1f}") Javaimport java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);long n = sc.nextLong();int x = sc.nextInt();int y = sc.nextInt();double waitTime = (n - 1) * (x + y) / 2.0;System.out.printf("%.1f\n", waitTime);}} Cpp#include #include using namespace std;int main() {long long n;int x, y;cin >> n >> x >> y;double wait_time = (n - 1) * (x + y) / 2.0;cout