算法:求这一数学题的解!
今天中午在公司群,看到他们讨论一数学题目,自己也试着写了求解。貌似这道题没有解么?有没有解不重要,重要的是,怎么样算才最合算?我就直接来一穷举,一一试探。貌似1到8没有解,如果数字可以给1到9的话,倒是有很多组解!

穷举是无奈的办法了,所以想到csdn大神,给个另外的思路。当然算法与语言无关,但是csdn不能将同一问题发到不同板块。所以就选择java板块来发这个问题吧!

public class Main {
public static void main(String[] args) {
int[] numbers = new int[8];
//爆破开始
for(int i = 1; i <= 9; i++) {
for(int j = 1; j <= 9; j++) {
for(int k = 1; k <= 9; k++) {
for(int l = 1; l <= 9; l++) {
for(int m = 1; m <= 9; m++) {
for(int n = 1; n <= 9; n++) {
for(int p = 1; p <= 9; p++) {
for(int q = 1; q <= 9; q++) {
numbers[0] = i;
numbers[1] = j;
numbers[2] = k;
numbers[3] = l;
numbers[4] = m;
numbers[5] = n;
numbers[6] = p;
numbers[7] = q;
if(validate(numbers)) {
System.out.println(i + " + " + j +" = 9");
System.out.println(k + " - " + l + " = 1");
System.out.println(m + " + " + n + " = 7");
System.out.println(p + " - " + q + " = 2");
System.out.println("-------------------------");
}
}
}
}
}
}
}
}
}
}
private static boolean validate(int[] nums) {
//if是为了判断数值是否满足四个表达式
if( (nums[0] + nums[1] == 9) &&
(nums[2] - nums[3] == 1) &&
(nums[4] + nums[5] == 7) &&
(nums[6] - nums[7] == 2) ) {
//这个循环是为了判断是否有重复数字出现,查找算法
for(int i = 0; i < nums.length; i++) {
for(int j = i+1; j < nums.length; j++) {
if(nums[i] == nums[j]) {
return false;
}
}
}
return true;
}
return false;
}
}
穷举是无奈的办法了,所以想到csdn大神,给个另外的思路。当然算法与语言无关,但是csdn不能将同一问题发到不同板块。所以就选择java板块来发这个问题吧!
...全文
相关推荐
中小学数学题程序_instance62k_python题_Python解数学题_Python解奥数题_python解初中题_
python程序解中小学奥数题,内附程序
估算法速解数学题.doc
估算法速解数学题.doc
用隐式欧拉法求一阶常微分方程的数值解
用隐式欧拉法求一阶常微分方程的数值解,数值计算,计算结果精确
求200以内的所有素数的简单算法!
求200以内的所有素数的简单算法!很实用的求素数算法!
马克思的趣味数学题,用C++编写程序!
马克思的趣味数学题,用C++编写程序!有30个人,其中有男人,女人,小孩,在一家饭馆吃饭共花50先令,每个男人花3先令,每个女人花2先令,每个小孩花1先令,问男人,女人,小孩各多少人?


Java SE
