计算球的体积

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

π 固定取 3.14,直译公式 V=4/3·π·r³,再用 printf("%.2f") 保留 2 位小数输出,O(1) 求值。

OJ: roj

题目 ID: 1030

难度:入门

标签:入门数学浮点数python

创建: 2026-09-29 14:40

更新: 2026-10-04 22:51

题目描述

给定球的半径 rr(不超过 100 的非负实数),按题面指定的 π=3.14\pi = 3.14 计算球体积 V=43πr3V = \frac{4}{3}\pi r^3,结果保留小数点后 2 位输出。

输入:一个非负实数,即球半径。输出:一个实数,即球的体积,保留 2 位小数。

样例:输入 4,输出 267.95。

思路

代入公式直接求值即可,注意 π\pi 必须取题面给的 3.14,不能用 math.pi,否则舍入结果可能差 0.01。

另外 4/3 要写成真除法(4.0/3.0),最后用 printf("%.2f") 四舍五入到 2 位小数并补零。

参考代码

Python 版:

python
#!/usr/bin/env python3
# Author by Rainboy blog: https://rainboylv.com github: https://github.com/rainboylvx
# rbook: -> https://rbook.roj.ac.cn  https://rbook2.roj.ac.cn
# rainboy的学习导航网站: https://idx.roj.ac.cn
# create_at: 2026-07-05 21:47
# update_at: 2026-09-30 10:00

import sys

PI = 3.14  # 题面指定的圆周率取值,不取 math.pi


def solve() -> None:
    data = iter(map(float, sys.stdin.buffer.read().split()))
    radius = next(data)                                # 半径 r,非负实数
    volume: float = 4 / 3 * PI * radius**3             # 球体积 v = 4/3·π·r³
    print(f"{volume:.2f}")                             # 保留 2 位小数(不足补 0)


if __name__ == "__main__":
    solve()

C++ 版(同一算法):

cpp
/**
 * Author by Rainboy blog: https://rainboylv.com github: https://github.com/rainboylvx
 * rbook: -> https://rbook.roj.ac.cn  https://rbook2.roj.ac.cn
 * rainboy的学习导航网站: https://idx.roj.ac.cn
 * create_at: 2026-10-04 22:51
 * update_at: 2026-10-04 22:51
 */
// main.cpp:读入球半径,按题面给定的 π=3.14 计算球体积,保留 2 位小数输出。
#include <cstdio>

typedef long long ll;

const double PI = 3.14; // 题面明确要求取 3.14,不能用 acos(-1) 等高精度 π

int main() {
    double radius; // 球半径,题面说明类型为 double,且不超过 100
    scanf("%lf", &radius);

    double volume = 4.0 / 3.0 * PI * radius * radius * radius; // V = 4/3·π·r³

    printf("%.2f\n", volume); // 保留 2 位小数,不足补 0

    return 0;
}