核心知识点
1.实数类型:float、double(尽量用double)
2.整数与小数运算会导致位数丢失(丢失精度)
3.ceil(小数) 向上取整
4.开头需要用 #include <cmath>
例题:已知大象要喝20升水才能解渴,但现在只有一个深h厘米,底面半径为r厘米的圆桶(h和r都是整数),求大象至少要喝多少桶水才会解渴?
据题意可得:
圆桶最多能装 π∗r∗r∗ℎ 立方厘米的水
(设 π=3.14159 ) 1升 = 1000毫升 1L=1000 ml
1毫升 = 1 立方厘米 1ml=1000 cm^3
(π=3.14159,将 3.14159 赋予PI)————这里只有五位,选择float或double皆可。
可以算出:
一桶里能装的水的体积 V=4/3πr^3 ,所以 Ans=20000/V。
#include<cmath>
#include<iostream>
using namespace std ;
int main()
{
int h,r;
double pi=3.14159;
cin >> h >> r ;
double v=pi*r*r*h;
int ans=ceil(double)20000/v);
cout << ans;
}
小结:
为什么用 double?
如果没有特殊规定,20000就是一个int类型的变量
可以理解为用(double)方式把 Int类型变量强行转换成Double类型变量(让小数不容易丢失)