【算法题】数字游戏,把数字1,2,...,9...使得等式成立,要求数字只出现一次

题目:

在这里插入图片描述

解析:

使用电脑穷举出所有情况将符合条件的值输出

解:

设(a)(b)为A,设(c)为B,设(d)(e)(f)为C,设(g)为D,设(h)(i)为E
B、D的取值范围不含1
为了满足数学要求,那么需要C%D==0

java代码实现:

import java.util.ArrayList;
import java.util.List;

public class numberGame {
    public static int[] nums1={1,2,3,4,5,6,7,8,9};
    public static int[] nums2={2,3,4,5,6,7,8,9};
    //判断是否有重复数字
    public static boolean hasSame(int[] arr){
        for(int i=0;i<arr.length;i++){
            int a=arr[i];
            for(int j=i+1;j<arr.length;j++){
                int b=arr[j];
                if(a==b){
                    return true;
                }
            }
        }
        return false;
    }

    public static void main(String[] args) {
        for(int a:nums1){
            for(int b:nums1){
                for(int c:nums2){
                    for(int d:nums1){
                        for(int e:nums1){
                            for(int f:nums1){
                                for(int g:nums2){
                                    for(int h:nums1){
                                        for(int i:nums1){
                                            int A=a*10+b;
                                            int B=c;
                                            int C=d*100+e*10+f;
                                            int D=g;
                                            int E=h*10+i;
                                            int[] arr={a,b,c,d,e,f,g,h,i};
                                            if( !hasSame(arr)
                                                    && C%D==0
                                            && A*B+C/D-E==0){
                                                System.out.println(
                                                        A+"*"+B+"+"+C+"/"+D+"-"+E+" = 0"
                                                );
                                            }

                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

运行结果:

C:\java\JDK\bin\java.exe...
12*4+376/8-95 = 0
17*3+258/6-94 = 0
35*2+168/7-94 = 0

Process finished with exit code 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值