大象喝水

GitHub跳转原题关系图返回列表

计算圆桶体积后对 20000 立方厘米向上取整。

OJ: noi_openjudge

题目 ID: ch0103-14

难度:入门

标签:数学python

日期: 2026-07-30 23:01

题意

圆桶体积为 πr2h\pi r^2h,大象至少要喝 20 升,即 20000 立方厘米水,求最少桶数。

思路

先计算一桶体积,再计算 20000/V20000/V。题目问“至少”,所以答案必须向上取整,Python 直接使用 math.ceil。圆周率按题设取 3.14159

代码

Python代码

python
import math

height, radius = map(int, input().split())
bucket_volume = 3.14159 * radius * radius * height
print(math.ceil(20000 / bucket_volume))

C++代码

cpp
#include <bits/stdc++.h>
using namespace std;
int main()
{
    int h,r;
    cin >> h >> r;
    double pi = 3.14159;
    double v = pi *r *r *h;
    int a = 20000 / v;
    if( a * v < 20000)
        a = a +1;
    cout << a;

    return 0;
}

复杂度

时间复杂度和额外空间复杂度均为 O(1)O(1)

总结

“至少需要多少个完整单位”是向上取整信号,不能只取整数部分。