有,所以我最喜欢就是回答这种输入目标数,自动列出等式的回答。
不过这个在网上下不到,也没有人无聊做这种软件,只有我这样的无聊程序猿才会自己写一个
所以这个软件一般是自己写自己用。。下面是主要程序代码,你参考下吧^o^
package com.zt.test;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Test9 {
// 构造过程通知方案
Map> map = new HashMap >();
long sss = 0;
public int getCheckNum() {
return checkNum;
}
public void setCheckNum(int checkNum) {
this.checkNum = checkNum;
}
int checkNum = 0;
// 作为一个程序员我无聊的写了个算法来回答这些问题
public static void main(String args[]) {
int[] nums = new int[] { };
Test9 a = new Test9();
a.setCheckNum();
a.getDataStr(nums);
}
public void ssss(String str) {
char[] cj = str.toCharArray();
// System.out.print(str);
Listlist = new ArrayList ();
for (char c : cj) {
list.add(c + "");
}
long sum = 0;
for (int i = 0; i < list.size() - 1; i++) {
String s = list.get(i);
if (i == 0) {
sum = Long.parseLong(s);
} else {
if (i % 2 == 0) {
} else {
if ("+".equals(s)) {
long n = Long.parseLong(list.get(i + 1));
sum = sum + n;
}
if ("-".equals(s)) {
long n = Long.parseLong(list.get(i + 1));
sum = sum - n;
}
if ("*".equals(s)) {
long n = Long.parseLong(list.get(i + 1));
sum = sum * n;
}
if ("/".equals(s)) {
long n = Long.parseLong(list.get(i + 1));
sum = sum / n;
}
}
}
}
if (this.checkNum == sum) {
System.out.println("++++" + str);
}
}
public void disp(int len) {
Listlist = map.get(len + "");
for (int i = 0; i < list.size(); i++) {
String str = list.get(i);
double d = MathEval.eval(str);
String s = MathEval.doubleTrans1(d);
ssss(str);
if (s.indexOf(".") >= 0) {
} else {
long l = Long.parseLong(s);
if (l == this.checkNum) {
System.out.println("-----" + str + "=" + s);
}
}
// distp(s, str);
// System.out.println(str + "=" + s);
}
}
public void distp(String str, String q) {
if (str.indexOf(".") >= 0) {
str = str.substring(0, str.indexOf("."));
}
if (str.length() == 5 && str.indexOf("-") < 0) {
int ll = Integer.parseInt(str);
if (ll >= 92000 && ll <= 99222)
System.out.println(q + "=" + str);
}
}
public void getDataStr(int[] nums) {
for (int i = 0; i < nums.length; i++) {
if (map.size() != 0) {
operationMap(nums[i], i);
} else {
Listlist = new ArrayList ();
list.add(nums[i] + "");
this.map.put("0", list);
}
}
this.disp(nums.length - 1);
}
public void operationMap(int i, int no) {
String key = (no - 1) + "";
Listlist = map.get(key);
for (int j = 0; j < list.size(); j++) {
String str = list.get(j);
this.putData(str, i, no + "");
}
}
public void putData(String str, int i, String no) {
Listlist = null;
if (map.containsKey(no)) {
list = map.get(no);
} else
list = new ArrayList();
list.add((str + "+" + i));
list.add((str + "-" + i));
list.add((str + "*" + i));
list.add((str + "/" + i));
map.put(no, list);
}
}