NC234862. 牛牛的装球游戏
描述
输入描述
第一行一个整数 代表案例组数。接下来 行每行两个整数分别代表 和 。
输出描述
共 行。每行一个小数(保留且只保留小数点后三位)代表剩余体积四舍五入后的结果。
示例1
输入:
3 5 3 2 5 2 2
输出:
235.619 29.322 25.133
Java 解法, 执行用时: 76ms, 内存消耗: 11316K, 提交时间: 2023-08-10 10:17:59
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); double pi=3.141592653589; int t = in.nextInt(); while (t-- > 0) { int r=in.nextInt(); int h=in.nextInt(); int s = h / (2 * r); double w=pi*r*h*r-s*pi*r*r*r*4/3; System.out.printf("%.3f",w); System.out.println(); } } }
Go 解法, 执行用时: 4ms, 内存消耗: 948K, 提交时间: 2023-08-10 10:16:40
package main import ( "fmt" "math" ) const pi = 3.141592653589 func main() { var r, h float64 var T int fmt.Scanln(&T) for i := 0; i < T; i++ { fmt.Scanln(&r, &h) var s1 float64 s1 = pi * r * r * h var cc float64 = math.Floor(h / (2 * r)) // fmt.Println(cc) fmt.Printf("%.3f\n", s1-cc*((4.0/3.0)*pi*r*r*r)) } }
PHP 解法, 执行用时: 10ms, 内存消耗: 3032K, 提交时间: 2023-08-10 10:15:19
<?php $pi = 3.141592653589; $n = intval(fgets(STDIN)); for($i = 0; $i < $n; $i++) { $arr = explode(' ', fgets(STDIN)); $r = intval($arr[0]); $h = intval($arr[1]); $s = $pi * $r * $r * $h; $nb = intval($h / 2 / $r); $sb = $nb * 4 * $pi * $r * $r * $r / 3; echo sprintf("%.3f\n", $s - $sb); }
Python3 解法, 执行用时: 44ms, 内存消耗: 4548K, 提交时间: 2023-08-10 10:10:36
PI = 3.141592653589 n = int(input()) for i in range(n): r, h = map(int, input().split()) # 圆柱体的体积 s = PI * r * r * h # 可以放球的个数, 球的体积 nb = h // (2*r) sb = nb * 4 * r * r * r * PI / 3 print('{:.3f}'.format(s - sb))