庞果网--理想随机数发生器
2013-11-30 17:33
232 查看
根据题意:分类讨论就行
转换提意:把a当做x轴,b当做y轴,那么题意就是求图中红线与坐标轴所围成的三角形面积设为s1,ab所构成的黑色矩形的面积为s2,那么题意就是求图中的***区域与s2的面积之比。
此时怎样求图中的***面积是重点,由于a、b、c的关系不确定,那么分类就行
对于那种显而易见的答案,就如说a+b<=c此时就是1/1
由于题意要求求最简分数,那么就要求求面积的最大公约数gcd----欧几里得算法来求-----辗转相除法也行
对于题目中c++给定的函数返回值是string,就通过字符串流来解决
http://hi.baidu.com/5053738058/item/0c0779074255c816addc701b
转换提意:把a当做x轴,b当做y轴,那么题意就是求图中红线与坐标轴所围成的三角形面积设为s1,ab所构成的黑色矩形的面积为s2,那么题意就是求图中的***区域与s2的面积之比。
此时怎样求图中的***面积是重点,由于a、b、c的关系不确定,那么分类就行
对于那种显而易见的答案,就如说a+b<=c此时就是1/1
由于题意要求求最简分数,那么就要求求面积的最大公约数gcd----欧几里得算法来求-----辗转相除法也行
对于题目中c++给定的函数返回值是string,就通过字符串流来解决
http://hi.baidu.com/5053738058/item/0c0779074255c816addc701b
class Test { public: static int gcd(int a,int b) { return b==0?a:gcd(b,a%b); } static string calculate (int a,int b,int c) { int r; int s1,s2=2*a*b; if(a+b<=c)return "1/1"; else if(c<=a) { if(c<=b) { s1=c*c; r=gcd(s1,s2); s1=s1/r; s2=s2/r; } else { s1=c*c-(c-b)*(c-b); r=gcd(s1,s2); s1=s1/r; s2=s2/r; } } else { if(c<=b) { s1=c*c-(c-a)*(c-a); r=gcd(s1,s2); s1=s1/r; s2=s2/r; } else { s1=c*c-(c-b)*(c-b)-(c-a)*(c-a); r=gcd(s1,s2); s1=s1/r; s2=s2/r; } } std::stringstream ss; ss<<s1<<"/"<<s2; std::string ret=ss.str(); return ret; } };
相关文章推荐
- pongo(英雄会)题解之理想随机数发生器
- pongo(英雄会)题解之理想随机数发生器
- 告别理想主义,走向经验主义
- 放弃理想,未必能成就现实
- 找到的我以前一直理想的生活 :)
- 理想
- 星座理想情人
- 人生理想
- OpenLaszlo 3.1发布--重拾几乎遗忘的RIA理想
- 电子商务,理想与现实的落差[zt]
- 软件开发中的理想与现实(七)——有备才能无患
- 对比:IT 从业人员成长的理想路径 与 现实
- 丁磊:当时理想是有房有车睡懒觉不准时上班有钱去旅游
- 理想、激情、生存—— 一位技术管理人员的20年工作经历和感悟之七
- [软工]理想向左,现实向右
- 先面对现实,再寻找理想
- (原創) 宋楚瑜 你是我心目中最理想的台北市長 (日記)
- 一个程序员的理想
- 密码学里的随机数发生器
- 上海理想实习笔试