1.四则运算 为了简化运算,暂不考虑括号().比如String str="3+5*2-1+2/2" 最后结果为132.1-9这九位数字中能组成3个百位数,要求第二个百位数是第一个百位数的2倍,第三个百位数是第二个百位数的二倍。
并且1-9这九个数字只能用一次,不能重复使用 。1:
那个四则运算 首先要按正则来拆分:
比如 String string="3+5*2-1+2/2
String[] str=string.split("//d+")//这是按数字拆分 得到的是运算符号
String[] str2=string.split("//D+")//这是按运算符号拆分 得到的是运算数字下面就没思路了?请指教下。
并且1-9这九个数字只能用一次,不能重复使用 。1:
那个四则运算 首先要按正则来拆分:
比如 String string="3+5*2-1+2/2
String[] str=string.split("//d+")//这是按数字拆分 得到的是运算符号
String[] str2=string.split("//D+")//这是按运算符号拆分 得到的是运算数字下面就没思路了?请指教下。
import java.util.List;
public class Number {
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
List<String> result = new ArrayList<String>();
int num = 0;
//构造没有重复数字的三位数,存入list
for(int i=1; i<=9; i++) {
for(int j=1; j<=9; j++) {
if(i == j)
continue;
for(int k=1; k<=9; k++) {
if(i == k || j == k)
continue;
num = i * 100 + j * 10 + k;
list.add(num);
}
}
}
//找到符合的三个百位数,构造成一个中间有一个空格的字符串,存入result
for(int i=0; i<list.size(); i++) {
for(int j=0; j<list.size(); j++) {
for(int k=0; k<list.size(); k++) {
if((list.get(j) == 2 * list.get(i)) && (list.get(k) == list.get(j) * 2))
result.add(list.get(i) + " " + list.get(j) + " " + list.get(k));
}
}
}
//打印结果
for(int i=0; i<result.size(); i++) {
System.out.println(result.get(i));
}
}
}