题目描述
输入球的中心点和球上某一点的坐标,计算球的半径和体积
输入描述:
球的中心点和球上某一点的坐标,以如下形式输入:x0 y0 z0 x1 y1 z1
输出描述:
输入可能有多组,对于每组输入,输出球的半径和体积,并且结果保留三位小数 为避免精度问题,PI值请使用arccos(-1)。
示例1
输入
0 0 0 1 1 1
输出
1.732 21.766
思路:
这道题目可能思路很清晰,但是提交了好几次都是超时,并不知道哪里错啦,后来看了别人家的博客,π用acos(-1)来表示,查了资料:acos(-1)是用的数学函数,但是我写3.1415926运行就是超时的,总之还是多练习吧。
代码:
#include<stdio.h>
#include<math.h>
int main(){
double x0, y0, z0, x1, y1, z1;
while(scanf("%lf%lf%lf%lf%lf%lf",&x0,&y0,&z0,&x1,&y1,&z1)!=EOF){
double r;
double area;
r=sqrt((x1-x0)*(x1-x0)+(y1-y0)*(y1-y0)+(z1-z0)*(z1-z0));
area = 4*acos(-1)*r*r*r/3;
printf("%.3lf %.3lf\n",r,area);
}
}
同时需要记忆的就是:
float用%f
double用%lf