球体问题

问题描述


在一部电影中,有一些来自太空的圆球,能使人的噩梦转化为现实。打个比方来说,如果你梦见你正被狮子袭击,那么在现实中你周围的人将会遭到狮子袭击。

现 在问题是送圆球来的外星人正在地球上,他们居住在自己建造的小岛上,小岛的四周被一种未知的有毒液体包围着。地球上的科学家目前还没有确定这种有毒液体的 化学成分,但却已准确地知道了它的一种物理属性——特有的重力G(S)。这种特有的重力会随着时间改变,因此我们的科学家每小时测一次。

外星人不袭击我们,他们所做的很简单,仅仅是在有毒液体上释放两个圆球组成的双球,双球飘向人类,然后使我们的噩梦成为现实。由于这些都是双球,其破坏力是一个圆球的两倍。外星人不擅长物理和数学,因此他们制造的双球有些也沉入到了毒液中。我们的科学家擅长物理,因此能确定这个球的质量,但不幸的是他们的数学也很差!因此他们向你求助来确定这个双球的体积和表面积,而且请你确定它是能飘在液体上还是下沉。你不必考虑漂浮和下沉的精度。设 pi=2*arccos(0)。

输入

输入数据的第一行是整数N,表示输入数据的组数。接下来的N行,每一行代表一组输 入,每组包含5个数:R1(0<=500)和R2(0<=500)分别表示双球的半径,单位是cm;d(表示双球的球心距,单位是cm,而 且d>max(R1,R2)且d<(R1+R2);球的质量w(w<10000000000,单位是克),有毒液体的密度s(0<s<10)。

输出

每组输入情况都有两行输出。第一行是圆球的体积和表面积(保留到小数点后4位),如果双球是下沉的,在第二行输出“The Paired-Sphere Sinks.”,否则输出“The Paired-Sphere Floats.”。


测试输入关于“测试输入”的帮助 期待的输出关于“期待的输出”的帮助 时间限制关于“时间限制”的帮助 内存限制关于“内存限制”的帮助 额外进程关于“{$a} 个额外进程”的帮助
测试用例 1 以文本方式显示
  1. 2↵
  2. 10 10 15 300 1.0↵
  3. 20 20 30 650000 1.0↵
以文本方式显示
  1. 8017.6063 2199.1149↵
  2. The Paired-Sphere Floats.↵
  3. 64140.8500 8796.4594↵
  4. The Paired-Sphere Sinks.↵
1秒 64M 0
题解思路

  一个比较简单的数学立体几何问题,求一个组合体的体积和表面积,组合体是由两个球体组合而成的。数学问题,想了解具体怎么计算的,可以搜索相关体积计算公式。


实现代码


<span style="font-family:Microsoft YaHei;font-size:14px;">#include<stdio.h>
#include<math.h>
#define pi 2*acos(0)
int main()
{
	double  r1,r2,d,density,h1,h2,den,f;
	double m,v,v1,v2,s,s1,s2;
	int i,n;
	
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%lf %lf %lf %lf %lf",&r1,&r2,&d,&m,&density);
		h1=(r2*r2+d*d-r1*r1)/(2*d)-d+r1;
		h2=(r1*r1+d*d-r2*r2)/(2*d)-d+r2;
		v1=4*pi*r1*r1*r1/3-pi*h1*h1*(r1-h1/3.0);
		v2=4*pi*r2*r2*r2/3-pi*h2*h2*(r2-h2/3.0);
		v=v1+v2;
		s1=4*pi*r1*r1-2*pi*r1*h1;
		s2=4*pi*r2*r2-2*pi*r2*h2;
		s=s1+s2;
		den=m/v;
		f=den-density;
		
		printf("%.4lf %.4lf\n",v,s);
		if(f>0.0)
		printf("The Paired-Sphere Sinks.\n");
		else
		printf("The Paired-Sphere Floats.\n");
	}
	
	return 0;
}</span>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值