14 条题解

  • 3
    @ 2023-6-2 9:50:33

    解析

    先算出一桶能装多少升水,然后看20升可以装多少桶,最后将结果向上取整。

    易错点

    1. 桶的尺寸给的是厘米,算出来的体积是立方厘米,转换为升,要做单位转换
    2. 不存在半桶水,所以需要将半桶水视作一桶水。

    题解

    #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;
    }
    
    • 2
      @ 2024-2-17 20:42:28

      #史上最简代码

      #include <bits/stdc++.h>
      int main(){printf("1");}
      

      建议老师换下样例

      • 1
        @ 2024-5-26 21:16:29

        题解 c++

        #include <bits/stdc++.h> //hetao4040809
        using namespace std;
        int main()
        {
            double h,r;
            cin>>h>>r;
            r=3.14*r*r;
            h=h*r/1000;
            h=20/h;
            int n=h;
            n+=1;
            cout<<n;
            return 0;
        }
        
        • 1
          @ 2024-4-14 15:49:01
          #include <iostream>
          #include <cmath>
          using namespace std;
          int main()
          {
              int h, r;
              double v, ans;
              cin >> h >> r;
              v = 3.14 * r * r * h;
              ans = 20 / (v / 1000);
              cout << ceil(ans);
              return 0;
          }
          
          • 1
            @ 2023-6-3 22:48:45

            大象喝水

            题目:

            根据题目,我们可以得知,需要的库要有: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
              @ 2024-5-24 17:08:02
              #include<iostream>
              #include<cstdio>
              #include<cmath>
              using namespace std;
              int main()
              {
                  int a,b,c;
                  cin >> a >> b;
                  c = 3.14 * b * b * a;
                  cout << ceil(20000 / c) + 1;
                  return 0;
              }
              
              • 0
                @ 2023-7-19 19:04:46

                大象喝水

                思路:



                根据半径求出体积→求出桶数→若不能整除则再加上一桶→输出桶数

                上代码:

                #include <iostream>
                using namespace std;
                int main()
                {
                    int h,r,mj,t;
                    cin >> h >> r;
                    mj = h*(3.14*r*r);
                    t=20/mj;
                    if(20%mj != 0)
                    {
                        t++;
                    }
                    cout << t;
                    return 0;
                }
                
                • 0
                  @ 2023-7-14 23:53:33

                  一种用循环的写法,仅限参考 #include <iostream> using namespace std; int main() { double h,r; cin >> h >> r; int sum = 1; while(1) { double ans = 20.0; ans = ans - h * r * r * 3.14; if(ans >= 0) { sum++; } else { break; } } cout << sum; return 0; }//已AC

                  • 0
                    @ 2023-7-5 22:33:26

                    大象喝水

                    #include <iostream>
                    #include <cmath>
                    using namespace std;
                    int main() {
                    	int h, r,ts;	//定义变量h,r
                    	cin >> h >> r;	//输入变量h,r
                        ts = ceil(20000 / (3.14 * pow(r, 2) * h));
                        cout << ts << endl;	
                    	return 0;
                    }
                    
                    • 0
                      @ 2023-6-4 14:58:13

                      试着写题解了 (((((新人,还请多多包涵,红豆泥阿里嘎多❤️

                      所用库:

                      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
                        @ 2023-6-3 17:33:16

                        可能大家会觉得我的代码怎么要这么长,因为我一时没想起有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
                          @ 2023-6-3 17:25:59
                          #include <iostream>
                          #include <cmath>
                          using namespace std;
                          int main()
                          {
                              const double pi = 3.14;
                              int h, r;
                              cin >> h >> r;
                              double water = pi * r * r * h / 1000;
                              cout << ceil(20.0 / water);
                              return 0;
                          }
                          
                          • 0
                            @ 2023-6-3 10:40:41
                            #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
                              @ 2023-8-10 23:47:36

                              注意:结果单位需由立方厘米转换为升(除以1000)

                              上代码

                              #include <bits/stdc++.h>
                              using namespace std;
                              int main()
                              {
                                  inr h,r;
                                  cin>>h>>r;
                                  double v=3.14*r*r*h,ans;
                                  ans=20/(v/1000);
                                  cout<<ceil(ans);//ceil表示向上取整
                                  return 0;
                              }
                              

                              搞定(点个赞叭

                            • 1

                            信息

                            ID
                            124
                            时间
                            1000ms
                            内存
                            256MiB
                            难度
                            6
                            标签
                            递交数
                            3473
                            已通过
                            1162
                            上传者