一、写在前面

我也不知道我为什么要写这个鬼畜的东西←_←才不是为了水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)将其强行转为整型后输出。

四、代码实现

 #include<stdio.h>
#include<math.h>//由于用到ceil,所以我们要用到这个头文件
int main()
{
double h,r;//定义两个浮点型变量h,r
scanf("%lf%lf",&h,&r);//读入h,r
printf("%d",(int)ceil(/(h*r*r*3.14159/)));//输出20/(Pi*r*r*h/1000)向上取整
return ;
}

大象喝水

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

【noip新手入门向】OpenJudge1.3-14大象喝水的更多相关文章

  1. 原创:从零开始,微信小程序新手入门宝典《一》

    为了方便大家了解并入门微信小程序,我将一些可能会需要的知识,列在这里,让大家方便的从零开始学习:一:微信小程序的特点张小龙:张小龙全面阐述小程序,推荐通读此文: 小程序是一种不需要下载.安装即可使用的 ...

  2. 课程上线 -“新手入门 : Windows Phone 8.1 开发”

    经过近1个月的准备和录制,“新手入门 : Windows Phone 8.1 开发”系列课程已经在Microsoft 虚拟学院上线,链接地址为:http://www.microsoftvirtuala ...

  3. 安卓自动化测试(2)Robotium环境搭建与新手入门教程

    Robotium环境搭建与新手入门教程 准备工具:Robotium资料下载 知识准备: java基础知识,如基本的数据结构.语法结构.类.继承等 对Android系统较为熟悉,了解四大组件,会编写简单 ...

  4. PHP常用代码大全(新手入门必备)

    PHP常用代码大全(新手入门必备),都是一些开发中常用的基础.需要的朋友可以参考下.   1.连接MYSQL数据库代码 <?php $connec=mysql_connect("loc ...

  5. Docker新手入门:基本用法

    Docker新手入门:基本用法 1.Docker简介 1.1 第一本Docker书 工作中不断碰到Docker,今天终于算是正式开始学习了.在挑选系统学习Docker以及虚拟化技术的书籍时还碰到了不少 ...

  6. 《IM开发新手入门一篇就够:从零开发移动端IM》

        登录 立即注册 TCP/IP详解 资讯 动态 社区 技术精选 首页   即时通讯网›专项技术区›IM开发新手入门一篇就够:从零开发移动端IM   帖子 打赏 分享 发表评论162     想开 ...

  7. 新手入门 : Windows Phone 8.1 开发 视频学习地址

    本视频资源来自Microsoft Virtual Academy http://www.microsoftvirtualacademy.com/ 下面为视频下载地址! 新手入门 : Windows P ...

  8. 从零开始:微信小程序新手入门宝典《一》

    为了方便大家了解并入门微信小程序,我将一些可能会需要的知识,列在这里,让大家方便的从零开始学习: 一:微信小程序的特点 张小龙:张小龙全面阐述小程序,推荐通读此文: 小程序是一种不需要下载.安装即可使 ...

  9. 新手入门指导:Vue 2.0 的建议学习顺序

    起步 1. 扎实的 JavaScript / HTML / CSS 基本功.这是前置条件. 2. 通读官方教程 (guide) 的基础篇.不要用任何构建工具,就只用最简单的 <script> ...

随机推荐

  1. 【iCore3 双核心板】例程七:WWDG看门狗实验——复位ARM

    .. 实验指导书及代码包下载: http://pan.baidu.com/s/1qWEK7fQ iCore3 购买链接: https://item.taobao.com/item.htm?id=524 ...

  2. Json的语法及使用方法

    Json的语法及使用方法 Json(JavaScript Object Notation)对象表示标识,是一种轻量级的数据交换语言,比XML更容易解析,独立于语言和平台. 语法规则: 对象用{}保存 ...

  3. JS-确认框

    if(confirm("Sure to xxxxxx?")){ xxxxxx; xxxxxx; }

  4. Java工具

    1. Groovy shell 可以在Java代码里执行脚本,可以将Java方法配置在文件里 依赖 <dependency> <groupId>org.codehaus.gro ...

  5. JS之获取样式

    基本代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...

  6. 如何获取网页上的LOGO

    一般公司网页上的图片都会禁止右键另存为,用截图工具接下来的图会带背景色,PS成背景透明有点费时间. 用Google Chrome 或Firefox 打开目标网页,右键点击审查元素,将鼠标放在图片上,一 ...

  7. 下拉列表select显示ng-options

    js中如何处理: it-equipment-list-maintenance-create-controller.js 'use strict'; myApp.controller( 'itEquip ...

  8. 再叙TIME_WAIT

    之所以起这样一个题目是因为很久以前我曾经写过一篇介绍TIME_WAIT的文章,不过当时基本属于浅尝辄止,并没深入说明问题的来龙去脉,碰巧这段时间反复被别人问到相关的问题,让我觉得有必要全面总结一下,以 ...

  9. 写在开始编写Java之前(1)——Java的跨平台性

    Java语言之所以比C语言更加实用 是有原因的 Java的一个重要的特点——跨平台性 无论是哪个平台,如Windows.Linus还是Mac系统 Java的语法都是一样的 这个要比C语言用处要广 因为 ...

  10. 在SQLite Expert上用日期类型字段作为条件查询时注意日期的格式化

    经验之谈: 情况一:没有查询结果 and R_CheckInTime > '2015-7-12 18:47:00' and R_CheckInTime < '2015-7-18 18:48 ...