pku2208pyramids
2010-08-06 13:55
302 查看
题目:pku2208
题意:已知四面体的六条边长,求其体积。下面二种方法均可作为模板。
代码一:先求角度,再求体积。由wanglang515 编写
代码二:先求边,再求体积。由onchf编写。
题意:已知四面体的六条边长,求其体积。下面二种方法均可作为模板。
代码一:先求角度,再求体积。由wanglang515 编写
Memory: 176K | Time: 16MS |
]//AB, AC, AD, BC, BD, CD #include<stdio.h> #include<math.h> int main() { double a,b,c,d,e,f,v; double angle1,angle2,angle3,angle; while(scanf("%lf %lf %lf %lf %lf %lf",&a,&b,&c,&d,&e,&f)!=EOF) { angle1=acos((a*a+b*b-d*d)/(2*a*b)); angle2=acos((a*a+c*c-e*e)/(2*a*c)); angle3=acos((b*b+c*c-f*f)/(2*b*c)); angle=(angle1+angle2+angle3)/2; v=1/3.0*a*b*c*sqrt(sin(angle)*sin(angle-angle1)* sin(angle-angle2)*sin(angle-angle3)); printf("%0.4f/n",v); } return 0; }
代码二:先求边,再求体积。由onchf编写。
Memory: 152K | Time: 0MS |
]#include <stdio.h> #include <math.h> int main() { double p , s , h , v ; double xx , yy , x , y , z ; double ab , ac , ad , bc , bd , cd ; while (scanf("%lf%lf%lf%lf%lf%lf", &ab, &ac, &ad, &bc, &bd, &cd) != EOF) { xx = (ac * ac - bc * bc + ab * ab) / (ab * 2) ; yy = sqrt(ac * ac - xx * xx) ; x = (ad * ad - bd * bd + ab * ab) / (ab * 2) ; y = (bd * bd - cd * cd + (x-xx) * (x-xx) - (x-ab) * (x-ab) + yy * yy) / (yy * 2) ; z = sqrt(ad * ad - x * x - y * y) ; p = (ab + ac + bc) / 2; s = sqrt(p * (p-ab) * (p-ac) * (p-bc)) ; h = z ; v = s * h / 3 ; printf("%.4lf/n" , v) ; } return 0 ; }
相关文章推荐
- POJ 2208 Pyramids 笔记
- POJ 2208 Pyramids(求四面体体积)
- POJ 2208 Pyramids 计算几何 四面体体积
- POJ-2208 Pyramids (Northeastern Europe 2002)
- POJ 2208 Pyramids&&HDU 1411 校庆神秘建筑(欧拉四面体公式)
- POJ-2208 Pyramids解题报告
- POJ 2208 Pyramids 欧拉四面体
- POJ 2208 Pyramids(四面体体积)
- poj 2208 Pyramids
- POJ 2208 Pyramids(欧拉四面体公式)
- pku2346 Lucky tickets
- pku 3714(最近点对)
- pku 3252 Round Numbers 组合数学 找规律+排列组合
- Pku1953 World Cup Noise (动态归划) 不含相邻1的2进制数
- pku 1113 Wall 凸包
- pku3590 The shuffle Problem
- PKU1061
- MST pku 1258 Agri-Net
- PKU 3259-Wormholes
- pku 3373 Changing Digits 爆搜+强剪枝