题目:
奔跑吧兄弟成员:邓超、王祖蓝、范冰冰、韩庚、李晨的加法如下:
范邓韩王
+ 范邓李王
李王韩范王
其中邓、王、范、韩、李均为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}");
}
}
}
}
}
}