OpenJudge-1.3.14:大象喝水

一、题目链接

http://noi.openjudge.cn/ch0103/14/

二、解题思路(Java)

◎ 显然,大象解渴需要的桶数可计算为20000/v,其中v是桶的体积(单位立方厘米),这个计算结果可能会包含小数,此时需要将小数部分进
为1,例如:
   → 桶数计算结果为3.23,则实际需要4桶;
   → 桶数计算结果为12.001,则实际需要13桶;
   → 桶数计算结果为195,则实际需要195桶;
◎ Java中,Math.ceil方法将一个数的小数部分进为1,称为天花板操作,计算结果是浮点数,例如:
   → Math.ceil(3.23)返回值为4.0;
   → Math.ceil(12.001)返回值为13.0;
   → Math.ceil(195)返回值为195.0;
◎ 输入整数桶深和底面半径,算出桶的体积,继而算出桶数,最后利用Math.ceil方法求出结果;
◎ 注意:题目规定圆周率π为3.14159。

三、实施步骤(Java)

◎ 首先,定义并输入两个int类型的整数h、r,分别代表桶深、底面半径,单位均为厘米;
◎ 其次,定义double类型的浮点数v,代表桶的体积,单位立方厘米,令v=20000/(3.14159*h*r*r);
◎ 最后,通过输出语句,输出表达式(int)Math.ceil(v),也即大象解渴需要的桶数。

四、解题思路(C++)

◎ 显然,大象解渴需要的桶数可计算为20000/v,其中v是桶的体积(单位立方厘米),这个计算结果可能会包含小数,此时需要将小数部分进
为1,例如:
   → 桶数计算结果为3.23,则实际需要4桶;
   → 桶数计算结果为12.001,则实际需要13桶;
   → 桶数计算结果为195,则实际需要195桶;
◎ C++的cmath库提供ceil函数将一个数的小数部分进为1,称为天花板操作,例如:
   → ceil(3.23)返回值为4;
   → ceil(12.001)返回值为13;
   → ceil(195)返回值为195;
◎ 输入整数桶深和底面半径,算出桶的体积,继而算出桶数,最后利用ceil函数求出结果;
◎ 注意:题目规定圆周率π为3.14159。

五、实施步骤(C++)

◎ 首先,定义并输入两个int类型的整数h、r,分别代表桶深、底面半径,单位均为厘米;
◎ 其次,定义double类型的浮点数v,代表桶的体积,单位立方厘米,令v=20000/(3.14159*h*r*r);
◎ 最后,通过输出语句,输出表达式ceil(v),也即大象解渴需要的桶数。

六、Java程序

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int h = input.nextInt(); // 桶深,单位厘米
        int r = input.nextInt(); // 底面半径,单位厘米
        double v = 20000 / (3.14159 * h * r * r); // 桶的体积,单位立方厘米
        System.out.print((int) Math.ceil(v)); // 输出大象解渴需要的桶数
    }
}

七、C++程序

#include <iostream>
#include <cmath> // 使用cmath库中的ceil函数进行天花板操作
using namespace std;

int main()
{
    int h; // 桶深,单位厘米
    int r; // 底面半径,单位厘米
    cin >> h;
    cin >> r;
    double v = 20000 / (3.14159 * h * r * r); // 桶的体积,单位立方厘米
    cout << ceil(v); // 输出大象解渴需要的桶数
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江苏科技大学_计算机学院_潘磊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值