| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 661 人关注过本帖
标题:[求助]这个公式怎么编啊?
只看楼主 加入收藏
zxya
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-9-13
收藏
 问题点数:0 回复次数:9 
[求助]这个公式怎么编啊?
刚开始学C,就碰上这么个难题:
  i=(a*b)/(c*d)
输入i,求a,b,c,d.
i一般在0.00000001~2.49999999之间,a,b,c,d则取值20~100之间的正整数。

我试着用a,b,c,d循环,老是不能通过,为什么?
搜索更多相关主题的帖子: 公式 难题 整数 输入 
2006-09-13 11:03
cwande
Rank: 2
等 级:新手上路
威 望:3
帖 子:333
专家分:0
注 册:2006-8-18
收藏
得分:0 
会有无解的情况啊

汗,都懒得写代码了.......... cheat了一个威望,哈.....
2006-09-13 16:45
zxya
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-9-13
收藏
得分:0 
以下是引用cwande在2006-9-13 16:45:38的发言:
会有无解的情况啊

有解的!我用手工经常算的,就是费时间(慢的话要2小时左右),所以想编个程序,不知道哪里出了问题。
希望这里的高手给个思路。

2006-09-14 16:35
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 
先把小数化成分数(20~100所有可能,可不最简)
然后对分母和分子的所有素数(包括1)
2006-09-14 16:39
cwande
Rank: 2
等 级:新手上路
威 望:3
帖 子:333
专家分:0
注 册:2006-8-18
收藏
得分:0 
以下是引用zxya在2006-9-14 16:35:41的发言:

有解的!我用手工经常算的,就是费时间(慢的话要2小时左右),所以想编个程序,不知道哪里出了问题。
希望这里的高手给个思路。

当a=b=20,c=d=100时,
i最小,i=0.04,
输入0.01会有解??


汗,都懒得写代码了.......... cheat了一个威望,哈.....
2006-09-14 18:31
zxya
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-9-13
收藏
得分:0 
其实这是一个算齿轮的公式,输入i(如1.4586982144),算a,b,c,d四个齿轮的齿数,一般情况四个齿轮的齿数是各不相等的。相反,有很多不同答案的数组。

[此贴子已经被作者于2006-9-14 19:24:17编辑过]


2006-09-14 19:20
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 
以下是引用zxya在2006-9-14 19:20:39的发言:
其实这是一个算齿轮的公式,输入i(如1.4586982144),算a,b,c,d四个齿轮的齿数,一般情况四个齿轮的齿数是各不相等的。相反,有很多不同答案的数组。

什么意思没看懂
老兄也是学机械的么?
给俺讲讲

2006-09-14 19:34
cwande
Rank: 2
等 级:新手上路
威 望:3
帖 子:333
专家分:0
注 册:2006-8-18
收藏
得分:0 
如果在保证有解的情况下,用枚举也才O(80^4), 不会复杂嘛.........

汗,都懒得写代码了.......... cheat了一个威望,哈.....
2006-09-14 19:51
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

用循环编,试试这个
if(fabs((((float)(a*b))/((float)(c*d))-i)<1e-8)
break;


倚天照海花无数,流水高山心自知。
2006-09-14 19:52
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 
以下是引用nuciewth在2006-9-14 19:52:46的发言:

用循环编,试试这个
if(fabs((((float)(a*b))/((float)(c*d))-i)<1e-8)
break;

效率?
人家要多值

2006-09-14 20:17
快速回复:[求助]这个公式怎么编啊?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016899 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved