【noip新手入门向】OpenJudge1.3-14大象喝水

一、写在前面

我也不知道我为什么要写这个鬼畜的东西←_←才不是为了水blog量什么的(划掉),其实是为了明天给学弟学妹们传教准备。

这道题对完全对c语言没有概念的小萌新们极度友好,可以锻炼小萌新们的代码能力。

本篇blog附的代码会在极大限度上追求代码的可读性,并介绍一个实用的函数——ceil,下面我们来正式进入讲解。

二、题目

描述

一只大象口渴了,要喝20升水才能解渴,但现在只有一个深h厘米,底面半径为r厘米的小圆桶(h和r都是整数)。问大象至少要喝多少桶水才会解渴。

输入

输入有一行:包行两个整数,以一个空格分开,分别表示小圆桶的深h和底面半径r,单位都是厘米。

输出

输出一行,包含一个整数,表示大象至少要喝水的桶数。

样例输入

23 11

样例输出

3

附上原题链接→_→http://noi.openjudge.cn/ch0103/14/

三、题目分析

由于是对萌新用,我就写详细一些。本题大致分为如下这些步骤:

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<stdio.h>
2 #include<math.h>//由于用到ceil,所以我们要用到这个头文件 
3 int main() 
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 }
大象喝水

弱弱地说一句,本蒟蒻码字也不容易,转载请注明出处http://www.cnblogs.com/Maki-Nishikino/p/5970819.html

posted @ 2016-10-17 18:40  Maki_Nishikino  阅读(5585)  评论(7编辑  收藏  举报