你想全列举是吧,用while或者do……while语句都可以方便实现的。
可以用三个循环嵌套,一下就可以全列举了。
不过,很耗时间。
另一种,可以先确定中间的数,两边的再按差值定下来。
不过,算法应该有点复杂,我只是初步看了下问题,没细分析,只可以说那么多了。不好意思,希望对你有一定帮助。
^_^!
很多,像
就是设这三个数字为X,Y,Z且X+Y+Z=2993,设所加或减的数字为Q
则有::(X+Q)+(Y-Q)+Z=2993
还可以是设所加减为Q,Q=S+H
则有:(X+Q)+(Y-S)+(Z-H)=2993
总之就是,加了多少就减多少,这样的取值有无数个
996,998,999
服了你们了,只有这三个好吧?
不信的话谁再举出一个来?
main()
{int a,b,c
for(a=100;a<1000;a++)
for(b=100;b<1000;b++)
for(c=100;c<1000;c++)
if (a!=b && b!=c && a!=c && a+b+c==2993)
printf("%d %d %d",a,b,c)
}
太多了.