设为首页 加入收藏

TOP

C语言实例:分数之和
2014-11-23 18:00:31 】 浏览:3373
Tags:语言 实例 分数 之和

  求这样的四个自然数p,q,r,s(p<=q<=r<=s),使得以下等式成立:


  1/p+1/q+1/r+1/s=1


  *问题分析与算法设计


  若规定p<=q<=r<=s,将原式通分、化简并整理后得到:


  2<=p<5 p<=q<7 q


  采用最简单的穷举方法可以很方便的求解。


  程序与程序注释:


  #include


  int 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语言实例分数比较

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目