【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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM