C语言编程:此题是利用穷举法来列出各种可能的情况,但我也就读懂题意了,但后边的编程包括注解实在是理
C语言编程:此题是利用穷举法来列出各种可能的情况,但我也就读懂题意了,但后边的编程包括注解实在是理解不了,能详细讲讲这道题以及穷举法的思路么?谢谢!...
C语言编程:此题是利用穷举法来列出各种可能的情况,但我也就读懂题意了,但后边的编程包括注解实在是理解不了,能详细讲讲这道题以及穷举法的思路么?谢谢!
展开
1个回答
展开全部
就是说,这个算式里有5个未知数,每个未知数的取值范围都是0-9,且5个未知数各不相同。所以用5个循环来穷举。为了防止两个未知数值相同,定义一个数组x,x[i]表示当前穷举的情况中前面的未知数有没有值为i的,有则x[i]为0;没有,则x[i]为1。
所以每重循环,都要判断一下,当前的未知数是否能取这个值(即前面是否有未知数取了这个值),然后设置x[i]表示i这个数已经被使用。到最后一重循环,计算题目给的那个算式是否成立,成立则输出各个未知数的值。
然后从内层循环退到外层循环时,要把x[i]重新置为1.
直到穷举完成
所以每重循环,都要判断一下,当前的未知数是否能取这个值(即前面是否有未知数取了这个值),然后设置x[i]表示i这个数已经被使用。到最后一重循环,计算题目给的那个算式是否成立,成立则输出各个未知数的值。
然后从内层循环退到外层循环时,要把x[i]重新置为1.
直到穷举完成
更多追问追答
追问
外循环for(i=0;i<=9;i++)的第一轮儿是当i取0时,走5个for内循环,那a干嘛从1开始,要是a的值为0呢?
这5个a到e的for循环是咋走的?是当a取1时,当b取0时直到当e取0时,还是把a全部走完接着走后边的,还是先走最内层的e呢?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询