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);
/*輸出結果*/
}
}
求這樣的四個自然數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);
/*輸出結果*/
}
}