码农锐宝 2022-02-01 01:13 采纳率: 33.3%
浏览 34
已结题

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

观察下面的加法算式:

       祥 瑞 生 辉
  +    三 羊 献 瑞
-------------------
     三 羊 生 瑞 气
   其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字
请你填写“三羊献瑞”所代表的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;
}




  • 写回答

3条回答 默认 最新

  • 关注

    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;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 2月9日
  • 已采纳回答 2月1日
  • 创建了问题 2月1日

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题