Pyramids

来源:互联网 发布:ug8.0编程视频教程全集 编辑:程序博客网 时间:2024/03/29 23:37

点击打开链接

Recently in Farland, a country in Asia, a famous scientist Mr. Log Archeo has discovered ancient pyramids. But unlike those in Egypt and Central America, they have triangular (not rectangular) foundation. That is, they are tetrahedrons in mathematical sense. In order to find out some important facts about the early society of the country (it is widely believed that the pyramid sizes are in tight connection with Farland ancient calendar), Mr. Archeo needs to know the volume of the pyramids. Unluckily, he has reliable data about their edge lengths only. Please, help him!

Input

Input consists of multiple test cases.
Each case contains six positive integer numbers not exceeding 1000 separated by spaces, each number is one of the edge lengths of the pyramid ABCD. The order of the edges is the following: AB, AC, AD, BC, BD, CD.

Output

For each test case, print in one line a real number -- the volume, accurate to four digits after decimal point.

Sample Input

1 1 1 1 1 11000 1000 1000 3 4 5

Possible Output for Sample Input

0.11791999.9937
^ ^   ^ ^    ^ ^    ^ ^    ^ ^   ^ ^    ^ ^   ^ ^   ^ ^   ^ ^    ^ ^    ^ ^   ^ ^


四面体公式:

其中m的对边是a,l的对边是c,n的对边是c;#include<stdio.h>#include<math.h>double area(double a,double b,double c,double l,double m,double n){return 1/12.0*sqrt(4*(a*a*b*b*c*c)-a*a*(b*b+c*c-m*m)*(b*b+c*c-m*m)-b*b*(a*a+c*c-n*n)*(a*a+c*c-n*n)-c*c*(a*a+b*b-l*l)*(a*a+b*b-l*l)+(b*b+c*c-m*m)*(a*a+c*c-n*n)*(a*a+b*b-l*l));}int main(){double sum,a,b,c,l,m,n;int i,j,k;while(scanf("%lf%lf%lf%lf%lf%lf",&a,&b,&c,&l,&m,&n)!=EOF){printf("%.4lf\n",area(a,b,c,l,n,m));}return 0;}


原创粉丝点击