C趣味編程百例(13)分數之和

字號:

44.分數之和
     求這樣的四個自然數p,q,r,s(p<=q<=r<=s),使得以下等式成立:
    *問題分析與算法設計
     若規(guī)定p<=q<=r<=s,將原式通分、化簡并整理后得到:
     2<=p<5 p<=q<7 q     采用最簡單的窮舉方法可以很方便的求解。
    程序與程序注釋:
    #include
    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);
     /*輸出結果*/
     }
    }