NYOJ869---切蛋糕
切蛋糕
有如下图半径为R的圆形蛋糕,被切一刀后(图中红色直线),分成两个部分(黄色和绿色),已知其比例为r,求刀痕长度(图中红色直线)
输入包括多组测试数据,包括一个整数R(1<=R<=1000),和一个浮点数r(01000 0.5000
500 0.6183
样例输出
1928.53
982.49
这个题目中犯的错误主要是:1.精度问题 2.类型转换问题。
/*************Author:jiabeimuweiTimes:0ms;Sources: 九度OJ 1551 切蛋糕 && NYOJ 869*************/#include#include#include#include#include#include#include#include#includeusing namespace std;//#include//#include#define max(a,b) a>b?a:b#define min(a,b) a>b?b:a#define mem(a,b) memset(a,b,sizeof(a))#define malloc(sb) (sb *)malloc(sizeof(sb))#define EPS 1e-8#define DINF 1e15#define MAXN 100050#define MOD 1000000007const double pi=acos(-1);double r,yy,sanx,sb,s,q1,q2;double low,high,m,R;int main(){ while(scanf("%lf %lf",&R,&r)!=EOF) { s= pi*R*R; low = 0.0000001,high = 2*R; while(low<=high) { m= (low+high)/2; yy = asin(m/2/R); sanx= R*R*yy; sb = R*R/2.0*sin(2*yy); q1 =sanx-sb; q2=s-q1; if(q1>=q2*r) { high = m-0.00001; } else { low = m+0.00001; } } printf("%0.2f\n",m); } return 0;}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
暂时没有评论,来抢沙发吧~