14 条题解
-
3
解析
先算出一桶能装多少升水,然后看20升可以装多少桶,最后将结果向上取整。
易错点:
- 桶的尺寸给的是厘米,算出来的体积是立方厘米,转换为升,要做单位转换
- 不存在半桶水,所以需要将半桶水视作一桶水。
题解
#include <iostream> #include <cmath> using namespace std; int main() { int h, r; double v, ans; cin >> h >> r; // 输入桶的半径和高,单位为厘米 v = 3.14 * r * r * h; // 圆桶的体积,底面积(π*r^2)*高,单位为立方厘米 ans = 20 / (v / 1000); // v / 1000立方厘米转化为升 cout << ceil(ans); return 0; }
-
1
大象喝水
题目:
根据题目,我们可以得知,需要的库要有:iostream(或cstdio,根据自己喜好选择,这里以iostream为例)、cmath PS:本题用到圆柱的体积(容积)公式:πr²h,及立方厘米(升)、立方分米(毫升)的进率(1000)
思路:
首先,输入两个整数h和r
定义一个常数PI(π)
求出体
只因积(或为容只因积)(πr²h)</b>把体
只因积(容只因积)化成立方分米(升) PS:由立方厘米(毫升)转化为立方分米(升),要除以1000(进率)用20L(升)除以体积,并向上取整
输出出来
偷懒简化:去除变量体积,去除常量PI,计算写在输出函数里
最终程序:
#include <iostream> #include <cmath> using namespace std; int main() { int h, r; //定义变量h,r cin >> h >> r; //输入变量h,r cout << ceil(20 / (3.14 * pow(r, 2) * h / 1000)) << endl; //把所有程序《 压 缩 》在输出变量里 return 0; }
-
0
试着写题解了
(((((新人,还请多多包涵,红豆泥阿里嘎多❤️所用库:
iostream(主代码),cmath(向上取整用)
思路:
先求出小圆桶的体积, (S圆柱 = πr²h)
然后由于题目中单位为厘米,大象喝水的单位是升 (立方分米) , 所以我们要进行立方厘米与立方分米间的换算。 (1000cm³ = 1dm³)
然后用题目中给出的20升除以小圆桶的体积得到商,将商向上取整,即为结果。
(不知道为什么要将商向上取整的,快去重修小学数学五六年级课本)以下是题解!
#include <iostream> #include <cmath> //导入两个库 using namespace std; int main() { int h, r; //定义变量 高和半径 float bucket; //定义一个浮点数变量来储存桶的体积 cin >> h >> r; bucket = 3.14*r*r*h; //套入圆柱体积公式计算 cout << ceil(20 / bucket / 1000); //太懒了 把换算和向上取整并一块了 return 0; } //题解 from GuChore
-
0
可能大家会觉得我的代码怎么要这么长,因为我一时没想起有ceil这个函数,所以我发了我独特的解法。
#include<iostream> using namespace std; int main() { int h,r; cin>>h>>r; //这里我们要计算出大象要喝水桶的个数,因为有可能是小数,所以类型为double double count=20/(3.14*r*r*h/1000); //由于不能让大象喝半桶水,所有才有接下来的代码 //如果将大象要喝水桶的个数化成整数后值不变,就代表大象要喝水桶的个数为整数,那么就可以直接打印大象要喝水桶的个数 if(int(count)==count) { cout<<count; } //不然的话就先将大象要喝水桶的个数化成整数(程序不会四舍五入,只会用去尾法),就相当于把大象还要喝的那半桶水给倒掉,再塞给大象一桶水,这样就相当于将大象还要喝的那半桶水给加满了 else { cout<<int(count)+1; } return 0; }
-
0
#include <cstdio> #include <cmath> using namespace std; int main() { const double pi = 3.14,L = 20.0; double h,r,t,tL; scanf("%lf%lf",&h,&r);//获取输入 tL = r * r * pi * h / 1000.0;//计算桶的容量,因为单位是cm,所以要将根据1L = 1000mL = 1000cm³将单位转换为L t = ceil(L / tL);//计算需要几桶 printf("%d",(int)t);//输出,为避免带小数点,用了个(int)强制转类型 return 0; }
- 1
信息
- ID
- 124
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- 递交数
- 3473
- 已通过
- 1162
- 上传者