求这样的四个自然数,p,q,r,s (p<=q<=r<=s),使得下列等式成立: 1/p + 1/q + 1/r + 1/s = 1 求数,c语言

#include <stdio.h>
void main()
{
int p,q,r,s;

for (p=2;;p++)
{
for (q=p;;q++)
{
for (r=q;;r++)
{
for (s=r;;s++)
{
if(1/p+1/q+1/r+1/s==1)
printf("%d,%d,%d,%d\n",p,q,r,s);

}
}
}
}
}
为什么不对啊?

你每个循环需要设下跳出条件的,还有1/p不能这么写,这样结果肯定是0,因为是整数相除,要写1.0/p才能是小数结果是:
2,3,9,18
2,3,12,12
2,4,5,20
2,4,6,12
2,4,8,8
3,3,4,12
4,4,4,4
对吧。程序如下
#include <stdio.h>
void main()
{
int p,q,r,s;

for (p=2;p<50;p++)
{
for (q=p;q<50;q++)
{
for (r=q;r<50;r++)
{
for (s=r;s<50;s++)
{
if(1.0/p+1.0/q+1.0/r+1.0/s==1)
{
printf("%d,%d,%d,%d\n",p,q,r,s);
// return;
}

}
}
}
}
}追问

为什么要小于50呢?

追答

我想了下,1/p>=1/4,即p=1/3(1-1/2),即q=1/2(1-1/2-1/3),即r=1-1/2-1/3-1/7,即s<=42
只要循环判断条件用这些就行了

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-11-26
有几个问题:
1.要设置p,q,r,s的上限,如for(s=r;s<10;s++),其他类同
2.1/p的结果是0,要让结果是小数,要写成1.0/p
3.既然是小数,因为精度的原因
1/p+1/q+1/r+1/s==1的==未必成立,要改成fabs((1.0/p+...)-1)<1e-6
第2个回答  2011-11-27
#include <stdio.h>
void main()
{
int p,q,r,s;

for (p=2;;p++)这是个死循环,永远不可能结束需要上限

{
for (q=p;;q++)这是个死循环,永远不可能结束需要上限

{
for (r=q;;r++)这是个死循环,永远不可能结束需要上限

{
for (s=r;;s++)这是个死循环,永远不可能结束需要上限
{
if(1/p+1/q+1/r+1/s==1)这永远都不会成立,
1/p=0,应用(float)1/q
printf("%d,%d,%d,%d\n",p,q,r,s);

}
}
}
}
}
第3个回答  2011-11-26
#include <stdio.h>
void main()
{
int p,q,r,s;

for (p=2;;p++)
{
for (q=p;;q++)
{
for (r=q;;r++)
{
for (s=r;;s++)
{
if(1/p+1/q+1/r+1/s==1)
printf("%d,%d,%d,%d\n",p,q,r,s);

}
}
}
}
}
ok啦。
第4个回答  2011-11-29
循环没问题 你这样写用的INT 1除以后全变成0了 化简下有
if(pqr+pqs+prs+qrs=pqrs)
应该有数字的范围吧 要不然循环不会终止 还会出现大数的

...p<=q<=r<=s),使得下列等式成立: 1\/p + 1\/q + 1\/r + 1\/s = 1...
4,4,4,4 对吧。程序如下 include <stdio.h> void main(){ int p,q,r,s;for (p=2;p<50;p++){ for (q=p;q<50;q++){ for (r=q;r<50;r++){ for (s=r;s<50;s++){ if(1.0\/p+1.0\/q+1.0\/r+1.0\/s==1){ printf("%d,%d,%d,%d\\n",p,q,r,s);\/\/retur...

...求这样的四个自然数p,q,r,s(p<=q<=r<=s),使得以下等式成立: 它们...
因为:p,q,r,s都是自然数,显然,p必须大于1,所以 2<=p<=4 推出:1\/2 >=1\/p >=1\/4 所以:1\/q+1\/r+1\/s = 1 - 1\/p 从而推出: 1\/2 <= 1\/q + 1\/r + 1\/s 所以:1\/2<=1\/q+1\/q+1\/q 从而得到:q<=6 所以:q = p to 6 到此,我们至少推断出两点:p =...

给我出几道推理题,越多越好
S先生、P先生、Q先生他们知道桌子的抽屉里有16张扑克牌:红桃A、Q、4 黑桃J、8、4、2、7、3 草花K、Q、5、4、6 方块A、5。约翰教授从这16张牌中挑出一张牌来,并把这张牌的点数告诉 P先生,把这张牌的花色告诉Q先生。这时,约翰教授问P先生和Q 先生:你们能从已知的点数或花色中推知这张牌是什么牌吗...

高分:网络流问题
p和q是网络的大小;numberofvehicles是小于1000的整数,表示由登陆舱pod所开出的探测车的个数。共有q行数据,每行表示火星表面的一组数据,p和q都不超过128。[模型一]很自然我们以登陆舱的位置为源点,传送器的位置为汇点。同时某块岩石由第一个访问到它的mev所采集,每块岩石只能被采集一次。但是这之后,其他mev可...

给我多一点奥数题,最好是关于代数式的,初一下学期的
21.如果正整数p和p+2都是大于3的素数,求证:6|(p+1). 22.设n是满足下列条件的最小正整数,它们是75的倍数,且恰有 23.房间里凳子和椅子若干个,每个凳子有3条腿,每把椅子有4条腿,当它们全被人坐上后,共有43条腿(包括每个人的两条腿),问房间里有几个人? 24.求不定方程49x-56y+14z=35的整数解. ...

在括号里填上合适的自然数,使等式成立3\/5=1\/( )+1\/( )
在括号里填上合适的数,使不等式成立,1\/8<1\/()<1\/3 1\/8<1\/(4)<1\/3 可以填3、4、5、6、7 在括号里填上互不相同的自然数,使等式成立:1\/3=1\/( )+1\/( ) 在括号里填上互不相同的自然数,使等式成立: 1\/3=1\/( 4)+1\/(12 )1\/3>()>1\/4 1\/20<()<1\/19 ...

懂统计的请进来帮帮忙!
当例数相等时,相关系数的绝对值越接近1,相关越密切;越接近于0,相关越不密切。当r=0时,说明X和Y两个变量之间无直线关系。相关系数的计算公式为:其中xi为自变量的标志值;i=1,2,…n;■为自变量的平均值,为因变量数列的标志值;■为因变量数列的平均值。为自变量数列的项数。对于单变量分组表的资料,相关系数的...

已知2021m=2022n,则m:n的值为什么?
当M=0时,式(6.8.2)可写成 (6.8.4) 由式(6.8.4)可见,此时FF1~FF4也是构成环行串行移位寄存器,但是在每一个CLK高电平到后,移存器是按一次向前跳移二位,即Q1→(Q1的状态进入FF3,成为次态),Q2→,Q3→,Q4→。 在电路开始工作时,若先将按键K接通到地数毫秒后,FF1~FF3被置零,即Q1=Q2=Q3=0,FF1被...

用等值演算或真值表证明公式(p→q)∧(p→r)<=>p→(q∧r)
(p→q)∧(p→r)=(非p∨q)∧(非p∨r)=非p∨(q∧r)=p→(q∧r)

离散数学:证明等价式p→(q∨r)<=>┓r→(p→q)
⇔¬p∨q∨r 结合律 得到主合取范式 ¬r→(p→q)⇔r∨(p→q) 变成 合取析取 ⇔r∨(¬p∨q) 变成 合取析取 ⇔r∨¬p∨q 结合律 ⇔¬p∨q∨r 交换律 排序 得到主合取范式 显然两者主合取范式一致,从而两个命题等价 ...

相似回答