c++穷举法的一个题目,题干在👇

题目:

奔跑吧兄弟成员:邓超、王祖蓝、范冰冰、韩庚、李晨的加法如下:

范邓韩王

+ 范邓李王 

李王韩范王

其中邓、王、范、韩、李均为1位数字(0-9),编写程序求邓、王、范、韩、李的取值。

我的程序:

出现错误:输出答案是这样:

邓=0

王=0

范=0

韩=1

李=0

邓=0

王=0

范=0

韩=2

李=0

邓=0

王=0

范=0

韩=3

李=0

邓=0

王=0

范=0

韩=4

李=0

邓=0

王=0

范=0

韩=5

李=0

邓=0

王=0

范=0

韩=6

李=0

邓=0

王=0

范=0

韩=7

李=0

邓=0

王=0

范=0

韩=8

李=0

邓=0

王=0

范=0

韩=9

李=0

Program ended with exit code: 0

可以帮我改一下程序,告诉我错误在哪里么,谢谢各位

1.题目说的很明白。就是汉字和数字游戏,先说一下人怎么思考:

       范邓韩王

+    范邓李王 

  李王韩范王

比如两个加数个位是王+王,最终的和个位也还是王,那说明王是0,因为只有0+0才等于0

       范邓韩0

+    范邓李0 

   李0韩范0

题目就变成这样了。

比如李是进了一位,两个数相加只可能进1,所以李是1

       范邓韩0

+    范邓1  0 

      10韩范0

千位:范+范= 10,可以退出范为5,因为如果百位有进位的话,两个相同的数结果为偶数加上进位不可能是10所以百位没有进位,百位没有进位的话,千位两个一样的数相加为10就只能是5+5

       5邓韩0

+    5邓1 0 

     10韩50

十位,韩+1=5所以韩是4,  邓+邓=韩,韩是4,邓是2

       5240

+    521 0 

     10450

2.编程解决的话,最简单的就是多级循环。用穷举的办法试出结果。

邓、王、范、韩、李分别从0-9循环,

当这五个数都不相等,并且 (1000*范+100*邓+10*韩+王) + (1000*范+100*邓+10*李+王)等于(10000 * 李 + 1000*王+100*韩+10*范+王)时。

就可以得出结果。

希望对你有帮助。

   题目 确定是这样?右括号是什么

for( int f=0; f <=9; ++ f)
{
	for( int d=0; d <=9; ++d )
	{
		for( int h=0; h<=9; ++h)
		{
			for( int w=0; w<=9; ++w)
			{
				for( int l=0; l<=9; ++l)
				{
					if( f != d && f != h && f != w && f != l &&
						d != h && d != w && d!= l && h != w &&
						h != l && w != l )
					{
						int a = f*1000+d*100+h*10+w;
						int b = f*1000+d*100+l*10+w;
						int s = l*10000+w*1000+h*100+f*10+w;
						
						if( a + b == s )
							Console.WriteLine($"范{f},邓{d},韩{h},王{w},李{l}");
					}
				}
			}
		}
	}
}