大象喝水
題目描述
一只大象口渴了,要喝 20 升水才能解渴,但現在只有一個深 h 厘米,底面半徑為 r 厘米的小圓桶 (h 和 r 都是整數)。問大象至少要喝多少桶水才會解渴。
這里我們近似地取圓周率 π = 3.14 \pi=3.14 π=3.14 。
輸入格式
輸入有一行:包行兩個整數,以一個空格分開,分別表示小圓桶的深 h 和底面半徑 r,單位都是厘米。
輸出格式
輸出一行,包含一個整數,表示大象至少要喝水的桶數。
輸入輸出樣例 #1
輸入 #1
23 11
輸出 #1
3
說明/提示
數據規模與約定
對于全部的測試點,保證KaTeX parse error: Expected 'EOF', got '&' at position 2: 1&?le;h≤500 ,KaTeX parse error: Expected 'EOF', got '&' at position 2: 1&?le;r≤100。
C++
1 d m 3 = 1 L 1dm^3=1L 1dm3=1L 所以將“升”轉化為“立方厘米”公式為:
1000 c m 3 = 1 L 1000cm^3=1L 1000cm3=1L
可知題中大象要喝 20000 c m 3 20000cm^3 20000cm3 的水才解渴。
又知圓柱體體積公式:
V = π ? r 2 ? h V=\pi\cdot r^2\cdot h V=π?r2?h
現已知 h,r 以及總喝水數,求大象喝水數。
易錯點:最后要對喝水的桶數取整!(因為 a 大部分不為整數,要向上取整大象才能喝飽)
上代碼:
#include<bits/stdc++.h>
using namespace std;
int h,r,a;
int main(){cin>>h>>r;a=20000/(3.14*r*r*h)+1;cout<<a;return 0;
}
Python
本題需要不少于喝水總量,因此需要向上取整 ceil()
函數,在 Python
中需要導入 math
庫。
如果你只需要 math
庫中的某一函數,你可以使用 from math import x
來導入;如果你需要導入 math
庫中的全部函數,你可以使用 import math
。
本題目代碼如下:
from math import ceil
a,b=input().split();
a=int(a);b=int(b);
print(ceil(20000/(3.14*a*b*b)));
Java
借助 Scanner
類讀取輸入的小圓桶的深和底面半徑,然后計算小圓桶的容積。因為題目里大象要喝的水的總量單位是升,所以要將其轉換為立方厘米。最后使用 Math.ceil()
方法對計算得到的桶數向上取整,并且輸出結果。
import java.util.Scanner;publicclass Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);// 讀取輸入的小圓桶的深和底面半徑int h = scanner.nextInt();int r = scanner.nextInt();// 定義圓周率double pi = 3.14;// 計算小圓桶的容積,單位為立方厘米double volume = pi * r * r * h;// 大象需要喝的水的總量,單位轉換為立方厘米double totalWater = 20 * 1000;// 計算需要的桶數int buckets = (int) Math.ceil(totalWater / volume);// 輸出結果System.out.println(buckets);scanner.close();}
}
夢想可以大,第一步總是小的!