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

1、寫在前面

我也不知道我爲何要寫這個鬼畜的東西←_←纔不是爲了水blog量什麼的(劃掉),實際上是爲了明天給學弟學妹們傳教準備。html

這道題對徹底對c語言沒有概念的小萌新們極度友好,能夠鍛鍊小萌新們的代碼能力。ide

本篇blog附的代碼會在極大限度上追求代碼的可讀性,並介紹一個實用的函數——ceil,下面咱們來正式進入講解。函數

2、題目

描述

一隻大象口渴了,要喝20升水才能解渴,但如今只有一個深h釐米,底面半徑爲r釐米的小圓桶(h和r都是整數)。問大象至少要喝多少桶水纔會解渴。spa

輸入

輸入有一行:包行兩個整數,以一個空格分開,分別表示小圓桶的深h和底面半徑r,單位都是釐米。code

輸出

輸出一行,包含一個整數,表示大象至少要喝水的桶數。htm

樣例輸入

23 11blog

樣例輸出

3ip

附上原題連接→_→http://noi.openjudge.cn/ch0103/14/get

3、題目分析

因爲是對萌新用,我就寫詳細一些。本題大體分爲以下這些步驟:數學

一、定義兩個浮點型變量h,r,用於存儲後來讀入的數據,並進行相關計算;

二、讀入h,r;

三、輸出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)將其強行轉爲整型後輸出。

4、代碼實現

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

相關文章
相關標籤/搜索