Я пытаюсь распечатать все возможные комбинации, изменив место операндов `|` и `&`.Как мне этого добиться? - PullRequest
0 голосов
/ 02 июня 2018

Это код для печати всех возможных выражений путем изменения позиции логического оператора.

import java.util.Scanner;

public class Permute_All_List_Numbers 
{
    static void permute(int[] a, int k) 
    {
        if (k == a.length) 
        {
            for (int i = 0; i < a.length; i++) 
            {
                System.out.print(" [" + a[i] + "] ");
            }
            System.out.println();
        } 
        else 
        {
            for (int i = k; i < a.length; i++) 
            {
                int temp = a[k];
                a[k] = a[i];
                a[i] = temp;

                permute(a, k + 1);

                temp = a[k];
                a[k] = a[i];
                a[i] = temp;
            }
        }
    }

    public static void main(String args[]) 
    {

        Scanner sc = new Scanner(System.in);

        int N = 2;
        char[] sequence = new char[N];

        for (int i = 0; i < N; i++)
            sequence[i] = ('|','&');

        System.out.println("The original sequence is: ");
        for (int i = 0; i < N; i++)
            System.out.print(sequence[i] + " ");

        System.out.println("\nThe permuted sequences are: ");
        permute(sequence, 0);

        sc.close();
    }
}

Я сталкиваюсь с ошибкой, как показано ниже.Что делать.

Permute_All_List_Numbers.java: 42: error: ')' ожидаемая последовательность [i] = ('|', '&');^ Permute_All_List_Numbers.java:42: ошибка: не последовательность операторов [i] = ('|', '&');^ Permute_All_List_Numbers.java:42: ошибка: ';'ожидаемая последовательность [i] = ('|', '&');

2-я ошибка

Permute_All_List_Numbers.java: 48: ошибка: несовместимые типы: char[] нельзя преобразовать в перестановку int [] (sequence, 0);

1 Ответ

0 голосов
/ 02 июня 2018

Проблема в том, что у вас есть массив char и вы пытаетесь преобразовать ('|', '&') в индекс.Элемент в массиве char (или массив любого типа) может содержать только один элемент типа массива.Я полагаю, что вы хотите сделать

char[] sequence = {'|', '&'};

в качестве удаления массива и избавиться от цикла for.Это сделает | первым элементом массива sequence и & вторым элементом.

...