2720:大象喝水
总时间限制: 1000ms 内存限制: 65536kB
描述
一只大象口渴了,要喝20升水才能解渴,但现在只有一个深h厘米,底面半径为r厘米的小圆桶(h和r都是整数)。问大象至少要喝多少桶水才会解渴。
输入
输入有一行:包行两个整数,以一个空格分开,分别表示小圆桶的深h和底面半径r,单位都是厘米。
输出
输出一行,包含一个整数,表示大象至少要喝水的桶数。
样例输入
23 11
样例输出
3
提示
如果一个圆桶的深为h厘米,底面半径为r厘米,那么它最多能装Pi * r * r * h立方厘米的水。(设Pi=3.14159)
1升 = 1000毫升
1毫升 = 1 立方厘米
来源
计算概论化学学院期末考试
问题链接:Bailian2720 大象喝水
问题简述:(略)
问题分析:用模拟法来解决,大象喝水一桶一桶喝,直到解渴(喝够20升=20000毫升)为止。需要注意单位,需要阅读提示,1升=1000毫升,1毫升=1立方厘米。输入给的数据是厘米单位。每桶水的体积v=PIrr*h(圆柱体积),即为毫升数。总喝水量sum,每喝一桶就增加一桶水的体积,直到sum>=20000毫升为止。
程序说明:(略)
参考链接:(略)
题记:PI可以是3.1415926,然而用acos(-1.0)更为精确。
AC的C++语言程序如下:
/* Bailian2720 大象喝水 */
#include <bits/stdc++.h>
using namespace std;
const double PI = acos(-1.0);
int main()
{
int h, r;
scanf("%d%d", &h, &r);
double v = PI * r * r * h, sum = 0;
int cnt = 0;
while(sum < 20000)
cnt++, sum += v;
printf("%d\n", cnt);
return 0;
}