C趣味编程百例(13)分数之和 |
|
www.nanhushi.com 佚名 不详 |
44.分数之和 求这样的四个自然数p,q,r,s(p<=q<=r<=s),使得以下等式成立:

*问题分析与算法设计 若规定p<=q<=r<=s,将原式通分、化简并整理后得到: 2<=p<5 p<=q<7 q<r<13 采用最简单的穷举方法可以很方便的求解。 程序与程序注释: #include<stdio.h> void main() { int p,q,r,s,count=0; printf("The 4 fractions which sum is equal 1 are:\n"); for(p=2;p<5;p++) /*穷举分母*/ for(q=p;q<7;q++) for(r=q;r<13;r++) if(p*q*r-q*r-p*r-p*q!=0) { s=(p*q*r)/(p*q*r-q*r-p*r-p*q); /*求出s的值*/ if(!((p*q*r)%(p*q*r-q*r-p*r-p*q))&&s>=r) printf("[%2d] 1/%d+1/%d+1/%d+1/%d=1\n",++count,p,q,r,s); /*输出结果*/ } } *运行结果

*思考题 将1、2、3、4、5、6、7、8、9九个数字分成以下三种分数形式之一,每个数字只能用一次,使得该分数刚好等于一个整数。

求所有满足条件的表示形式。 (参考答案:某些自然数没有这种表示形式,如:1、2、3、4、15、18等。此外整数100有11种满足条件的表示形式;89的表示形式最多,共有36种;三种形式中,最大可表示的整数为794。)
|
|
|
文章录入:杜斌 责任编辑:杜斌 |
|
上一篇文章: C趣味编程百例(13)分数比较 下一篇文章: C趣味程序百例(14)将真分数分解为埃及分数 |
【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |
|
|