三羊祥瑞看看我的代码哪里有问题修改一下(程序没错无法输出答案)

观察下面的加法算式:

       祥 瑞 生 辉
  +    三 羊 献 瑞
-------------------
     三 羊 生 瑞 气
   其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字
请你填写“三羊献瑞”所代表的4位数字(答案唯一),不要填写任何多余内容。



我的解法:我用的是暴力解法 但是没有答案输出 我找不到哪里错了 大佬看看
     祥 瑞 生 辉
      a  b  c  d
+   三 羊 献 瑞
     e  f  g  b
-------------------
   三 羊 生 瑞 气
   e  f c  b  h

 祥 和 三都不可能从0开始 



```c
int main()
{
   int a, b, c, d, e, f, g, h;
   long sum1, sum2, sum3;
   for (a = 1; a <=9; a++)
   {
      for (b = 0; b <= 9; b++)
      {
         for (c = 0; c <= 9; c++)
         {
            for (d = 0; d <= 9; d++)
            {
               for (e = 1; e <= 9; e++)
               {
                  for (f = 0; f <= 9; f++)
                  {
                     for (g = 0; g <= 9; g++)
                     {
                        for (h = 0; h <= 9; h++)
                        {

                           if (a != b && a != c && a != d && a != e && a != f && a != g && a != h &&
                               b != c && b != d && b != e && b != f && b != g && b != h &&
                               c != d && c != e && c != f && c != g && c != h &&
                               d != e && d != f && d != g && d != h &&
                               e != f && e != g && e != h &&
                               f != g && f != g && f != h &&
                               g != h)
                           {
                              sum1 = a * 1000 + b * 100 + c * 10 + d;
                              sum2 = e * 1000 + f * 100 + g * 10 + h;
                              sum3 = e * 10000 + f * 1000 + c * 100 + b * 10 + h;
                              if ((sum1 + sum2) == sum3)

                                 printf("%d", sum3);
                           }
                        }
                     }
                  }
               }
            }
         }
      }
   }
   return 0;
}




sum2的公式写错了。sum2应该是:sum2= e*1000+ f*100+ g*10 + b
而且,题目要求的输出“三羊献瑞”的四位数,printf中显示的应该是sum2

对应关系:

           祥瑞生辉
sum1: a  b  c  d
           三羊献瑞
sum2: e f g b
           三羊生瑞气
sum3:e f  c b h

代码:

#include <stdio.h>

int main()
{
    int a, b, c, d, e, f, g, h;
    long sum1, sum2, sum3;
    for (a = 1; a <=9; a++)
    {
        for (b = 0; b <= 9; b++)
        {
            for (c = 0; c <= 9; c++)
            {
                for (d = 0; d <= 9; d++)
                {
                    for (e = 1; e <= 9; e++)
                    {
                        for (f = 0; f <= 9; f++)
                        {
                            for (g = 0; g <= 9; g++)
                            {
                                for (h = 0; h <= 9; h++)
                                {
                                    if (a != b && a != c && a != d && a != e && a != f && a != g && a != h &&
                                        b != c && b != d && b != e && b != f && b != g && b != h &&
                                        c != d && c != e && c != f && c != g && c != h &&
                                        d != e && d != f && d != g && d != h &&
                                        e != f && e != g && e != h &&
                                        f != g && f != g && f != h &&
                                        g != h)
                                    {
                                        sum1 = a * 1000 + b * 100 + c * 10 + d;
                                        sum2 = e * 1000 + f * 100 + g * 10 + b;  //修改1
                                        sum3 = e * 10000 + f * 1000 + c * 100 + b * 10 + h;
                                        if ((sum1 + sum2) == sum3)
                                            printf("%d", sum2); //修改2
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    return 0;
}

三肯定是1,祥肯定是9

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632