2302_80243748 2023-11-25 22:54 采纳率: 50%
浏览 10
已结题

怎样从一到九中取五个数字赋给abcd且各不相同呢

img

假设abcd代表数字一到九中的五个数字且各不相同,满足A B C×D=Ac*dbe,这样的形式的算式有系咯,例如A等于1,B等于8,C等于7,d等于五,e等于三,则187×53=17×15873等于9911。打印三行,第一行为解的个数第二行算式最小值第三行算是最大值。
希望大家能帮助我

  • 写回答

2条回答 默认 最新

  • threenewbee 2023-11-26 00:43
    关注
    #include <stdio.h>
     
    int main()
    {
        int cnt = 0, max, min;
        for (int a = 1; a <= 9; a++)
        {
            for (int b = 1; b <= 9; b++)
            {
                for (int c = 1; c <= 9; c++)
                {
                    for (int d = 1; d <= 9; d++)
                    {
                        for (int e = 1; e <= 9; e++)
                        {
                            if (a == b || a == c || a == d || a == e || b == c || b == d || b == e || c == d || c == e || d == e)
                                continue;
                            if ((a*100+b*10+c)*(d*10+e)==(a*10+c)*(d*100+b*10+e))
                            {
                                //printf("%d%d%d*%d%d=%d%d*%d%d%d\n", a, b, c, d, e, a, c, d, b, e);
                                if (cnt == 0)
                                {
                                    max = min = (a*100+b*10+c)*(d*10+e);
                                }
                                else
                                {
                                    if ((a*100+b*10+c)*(d*10+e) > max) max =  (a*100+b*10+c)*(d*10+e);
                                    if ((a*100+b*10+c)*(d*10+e) < min) min =  (a*100+b*10+c)*(d*10+e);
                                }
                                cnt++;
                            }
                        }
                    }
                }
            }
        }
        printf("%d\n%d\n%d", cnt, min, max);
        return 0;
    }
    

    142
    3542
    64152

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月5日
  • 已采纳回答 11月27日
  • 创建了问题 11月25日