一、写在前面
我也不知道我为什么要写这个鬼畜的东西←_←才不是为了水blog量什么的(划掉),其实是为了明天给学弟学妹们传教准备。
这道题对完全对c语言没有概念的小萌新们极度友好,可以锻炼小萌新们的代码能力。
本篇blog附的代码会在极大限度上追求代码的可读性,并介绍一个实用的函数——ceil,下面我们来正式进入讲解。
二、题目
描述
一只大象口渴了,要喝20升水才能解渴,但现在只有一个深h厘米,底面半径为r厘米的小圆桶(h和r都是整数)。问大象至少要喝多少桶水才会解渴。
输入
输入有一行:包行两个整数,以一个空格分开,分别表示小圆桶的深h和底面半径r,单位都是厘米。
输出
输出一行,包含一个整数,表示大象至少要喝水的桶数。
样例输入
23 11
样例输出
3
三、题目分析
由于是对萌新用,我就写详细一些。本题大致分为如下这些步骤:
1、定义两个浮点型变量h,r,用于存储后来读入的数据,并进行相关计算;
2、读入h,r;
3、输出20/(Pi*r*r*h/1000)向上取整的结果(数学问题不予解释
以上,我们发现我们遇到了一个问题——h,r最开始是浮点型变量,但最后我们要将其经过一定的计算后对计算结果上取整后输出,这时我们要引入一个神奇的函数——ceil。
ceil是一个定义在math.h里的函数,其功能是返回大于或等于指定表达式的最小整数。
有点绕是吗?我们来看几个例子:
ceil(4.3)=5;
ceil(4.9)=5;
ceil(5.0)=5.
是不是明白了一些呢?但需要注意的是,ceil返回的函数值依旧是浮点型,我们需要使用(int)将其强行转为整型后输出。
四、代码实现
1 #include
2 #include//由于用到ceil,所以我们要用到这个头文件
3 intmain()4 {5 double h,r;//定义两个浮点型变量h,r
6 scanf("%lf%lf",&h,&r);//读入h,r
7 printf("%d",(int)ceil(20/(h*r*r*3.14159/1000)));//输出20/(Pi*r*r*h/1000)向上取整
8 return 0;9 }
大象喝水
更多推荐
python大象喝水问题_【noip新手入门向】OpenJudge1.3-14大象喝水
发布评论