weixin_46382111 2020-02-22 13:36 采纳率: 100%
浏览 874
已采纳

C语言枚举法:用1到9不重复输出,三位数乘两位数得四位数,

用枚举法输出如
## *## =####
#代表一个数字
要求用1到9组成式子且不重复,每个数字出现一次

    自己打的代码

    #include<stdio.h>

#include
int main(void)
{
long a = 10, b = 10, c = 10, d = 10;
int h[9] = { 0 }, i = 1, j = 1, num = 1;
for (a = 10;a < 100;a++)
{
for (b = 10;b < 100;b++)
{
for(c=10;c<100;c++)
{
for (d = 100;d<1000;d++)
{
if (a * b == c * d)
{
h[0] = a / 10;
h[1] = a % 10;
h[2] = b / 10;
h[3 ]= b % 10;
h[4] = c / 10;
h[5] = c % 10;
h[6 ]= d / 100;
h[7] = d % 100 / 10;
h[8] = d % 10;
for (i = 0;i < 9;i++)
{
if(h[i]==0)
{
num = 0;
continue;
}
for (j = i - 1;j < 9;j++)
{
if (h[i] == h[j])
num = 0;
else
continue;
}
}
if (num)
printf("%ld*%ld=%ld*%ld\n", a, b, c, d);
else
num = 1;
}
}
}
}
}
return 0;
}

不对,可能理解错误,没有

  • 写回答

1条回答 默认 最新

  • threenewbee 2020-02-22 13:43
    关注

    https://ask.csdn.net/questions/1053340 这个问题思路一样

    稍微修改下

    #include <stdio.h>
    #include <string.h>
    
    int judge(int* n)
    {
        int arr[10];
        memset(arr, 0, sizeof(int) * 10);
        for (int i = 0; i < 3; i++)
        {
            int n1 = n[i];
            for (int j = 0; j < 4; j++)
            {
                arr[n1 % 10] = 1;
                n1 /= 10;
            }
        }
        for (int i = 1; i < 10; i++)
            if (!arr[i]) return 0;
        return 1;
    }
    
    int main()
    {
        for (int i = 123; i <= 987; i++)
            for (int j = 12; j <= 98; j++)
            {
                if (i * j < 1234 || i * j > 9876) continue;
                int arr[3];
                arr[0] = i;
                arr[1] = j;
                arr[2] = i * j;
                if (judge(arr)) printf("%d * %d = %d\n", arr[0], arr[1], arr[2]);
            }
        return 0;
    }
    

    138 * 42 = 5796
    157 * 28 = 4396
    159 * 48 = 7632
    186 * 39 = 7254
    198 * 27 = 5346
    297 * 18 = 5346
    483 * 12 = 5796

    问题解决的话,请点下采纳

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么