使用2种可能的操作运行ArrayList的总和

时间:2016-08-11 02:59:47

标签: java arraylist

我正在尝试创建一个程序,在输入的数字之间插入两个可能的操作(*和+)并跟踪总数。该程序只是从左到右阅读,因此不适用BEDMAS

例如,如果我输入:1 2 3

输出为1 + 2 + 3 - > Sum = 6

或输出为1 + 2 * 3 - > Sum = 9

或输出为1 * 2 + 3 - >总和= 5  等

我遇到了困难,因为我的程序继续从空的ArrayList(数字)尝试numbers.remove()

public static void calculate(ArrayList<Integer> numbers, int target){
    ArrayList<Integer> temp_array = new ArrayList<Integer>(numbers);
    int sum = 0;
    int n = (numbers.size() - 1);
    System.out.println("This is where we calcutale L");

    for (int i = 0; i < Math.pow(2, n); i++) {  
        String bin = Integer.toBinaryString(i);
        while (bin.length() < n)
             bin = "0" + bin;
        char[] chars = bin.toCharArray();
        char[] charArray = new char[n];

        while(charArrayCount < Math.pow(2,n)){
            for (int j = 0; j < chars.length; j++) {
                charArray[j] = chars[j] == '0' ? '+' : '*';
            }
            for(char c : charArray){
                int current = numbers.get(0);
                if (c == '+'){
                  sum = sum + current;
                }
                numbers.remove(0);
                System.out.println(sum);
            }
            numbers = temp_array;
            sum = 0;
        }
    }
}

0 个答案:

没有答案