luogu-B3706 [语言月赛202302] 晚秋绝诗

luogu-B3706 [语言月赛202302] 晚秋绝诗

GESP二级练习,数学函数练习,难度★☆☆☆☆。

luogu-B3706 [语言月赛202302] 晚秋绝诗

题目要求

题目描述

诗人有两个仓库。甲仓库有 xx 升啤酒,乙仓库有若干升啤酒,如果甲仓库给予乙仓库 zz 升啤酒,那么甲乙两仓库的啤酒体积相等。

现有一辆最多可以运输 cc 升啤酒的卡车来运送乙仓库的所有啤酒,请问至少要运多少次?

输入格式

输入共两行。

输入的第一行,两个正整数 x,zx, z

输入的第二行,一个浮点数 cc

输出格式

输出一行一个整数,输出要运多少次。

输入 #1

5 1
1.5

输出 #1

2

输入 #2

1000000000000 2
99.435

输出 #2

10056821039

数据规模与约定

对于 20%20\% 的测试数据,保证 z=0z = 0
对于 30%30\% 的测试数据,保证 cc 是整数;
对于 100%100\% 的测试数据,满足 0z10120 \leq z \leq 10^{12}2z<x10182z < x \leq 10^{18}1c10181 \leq c \leq 10^{18}


题目分析

解题思路

  1. 首先,我们需要理解题目的核心要求:

    • 计算需要运送的次数
  2. 解题思路:

    • 计算 y=x2zy = x - 2z,其中 xx 是总量,zz 是每次运送的固定量
    • cc 作为每次运送的浮点数容量,计算 y/cy / c 的上整数部分
  3. 具体实现:

    • 读入两个正整数 xxzz
    • 读入一个浮点数 cc
    • 计算 y=x2zy = x - 2z
    • 输出 y/cy / c 的上整数部分

{% include custom/custom-post-content-inner.html %}


示例代码

#include <cmath>
#include <iostream>

using namespace std;
int main() {
    long long x, z; // 定义两个长整型变量 x 和 z
    cin >> x >> z; // 从标准输入读取 x 和 z 的值
    double c; // 定义一个双精度浮点数变量 c
    cin >> c; // 从标准输入读取 c 的值
    long long y = x - 2 * z; // 计算 y 的值
    cout << ceil(y / c); // 输出 y 除以 c 的上整数部分
    return 0; // 返回 0,表示程序正常结束
}

{% include custom/custom-post-content-footer.md %}

所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code

luogu-”系列题目可在 洛谷题库 在线评测。

bcqm-”系列题目可在 编程启蒙题库 在线评测。

GESP/CSP 认证学习微信公众号
GESP/CSP 认证学习微信公众号
Last updated on