FZU Problem 1077 铁皮容器

Problem 1077 铁皮容器

Accept: 1073 Submit: 2371 Time Limit: 1000 mSec Memory Limit : 32768 KB

img Problem Description

使用白铁皮制作圆柱容器(有盖),其中每个容器耗用的铁皮量(表面积)固定为1000平方厘米。在已知容器的容积情况下,编程计算容器底半径的最小可能取值。其中容器的容积为整数,半径精确到小数点后面一位。

img Input

输入的第一行含一个正整数k (1<=k<=10),表示测试例的个数。后面紧接着k行,每行对应一个测试例,含一个整数n(0<=n<=20000),代表容积。

img Output

每个测试例对应一行输出,含一个实数,表示半径的值,若无解则输出“NO”。

Sample Input

2

1000

3000

Sample Output

2.1

NO

img Source

FJNU Preliminary 2005

解决方案

根据数学公式可推导出
V = S R / 2 p i R 3 V=SR/2-piR^3
本题不必想着如何求解一元三次方程

而应考虑枚举方法

#include<iostream>
#define pi 3.14159265358

int main() {
	int k, flag;
	double v, r;
	scanf("%d", &k);
	while (k--) {
		scanf("%lf", &v);
		flag = 0;
		for (r = 0.00;; r += 0.01) {
			if (pi*r*r > 500) {
				break;
			}
			else if ((500 * r - pi * r*r*r) > v) {
				flag = 1;
				break;
			}
		}
		if (flag) {
			printf("%.1lf\n", r);
		}
		else {
			printf("NO\n");
		}
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_26154135/article/details/89467517
今日推荐