首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

求两个整数的比例,该怎么处理

2014-06-10 
求两个整数的比例给出两个值,求他们最接近的比例比如说621:123是6:110跟5得到的结果应该是2:1怎么做[解决

求两个整数的比例
给出两个值,求他们最接近的比例
比如说   621   :   123     是   6:1
10   跟   5     得到的结果应该是   2:1    
怎么做

[解决办法]
621 : 123 怎么是 6:1
[解决办法]
使用连分数来最佳逼进
[解决办法]
楼主是要一个类似4舍5入的东西吗?
#include "stdio.h "
void display(int a,int b)
{
if((a/b) <=(2*a+b)/(2*b))
printf( "%d:1\n ",(2*a+b)/(2*b));
else
printf( "%d:1\n ",(a/b));
}
void main ()
{
int a=54;
int b=10;
display(a,b);
}
[解决办法]
首先转化为一个分子为1的一对分数,一个是下限,一个是上限:
如 0.1415926 的下限是 (1/8), 上限是 (1/7),然后逐步缩小上下限的范围
示例:

下限和上限初值: low= a/b, high=c/d, x/y:要转化的分数
循环:
while (1)
{
mid= (a+c)/(b+d);
if (mid > x/y)
high= mid
else
low=mid
if ( mid 的达到要求(即误差小于指定值,而分子和分母不大于期望的数)
break;
}





[解决办法]
http://topic.csdn.net/t/20051109/10/4381241.html
(CSDN的搜索功能比较弱,只好通过 google 才将老帖子翻出来)

热点排行