我试图通过更改操作数`|` 和`&` 的位置来打印所有可能的组合。我怎样才能做到这一点?
I am trying to print all possible combination by changing the place of operands `|` and `&`. How can I achieve this?
这是通过改变逻辑运算符的位置来打印所有可能表达式的代码。
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: ')' expected
sequence[i] = ('|','&');
^ Permute_All_List_Numbers.java:42: error: not a statement
sequence[i] = ('|','&');
^ Permute_All_List_Numbers.java:42: error: ';' expected
sequence[i] = ('|','&');
第二个错误是
Permute_All_List_Numbers.java:48: error: incompatible types: char[]
cannot be converted to int[]
permute(sequence, 0);
问题是您有一个 char
数组并试图将 ('|', '&')
解析为索引。 char
数组(或任何类型的数组)中的一个元素只能包含该数组类型的一个元素。我相信你想要做的是
char[] sequence = {'|', '&'};
作为数组的减速并摆脱for循环。这将使 |
作为 sequence
数组的第一个元素,而 &
作为第二个元素。
这是通过改变逻辑运算符的位置来打印所有可能表达式的代码。
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: ')' expected sequence[i] = ('|','&'); ^ Permute_All_List_Numbers.java:42: error: not a statement sequence[i] = ('|','&'); ^ Permute_All_List_Numbers.java:42: error: ';' expected sequence[i] = ('|','&');
第二个错误是
Permute_All_List_Numbers.java:48: error: incompatible types: char[] cannot be converted to int[] permute(sequence, 0);
问题是您有一个 char
数组并试图将 ('|', '&')
解析为索引。 char
数组(或任何类型的数组)中的一个元素只能包含该数组类型的一个元素。我相信你想要做的是
char[] sequence = {'|', '&'};
作为数组的减速并摆脱for循环。这将使 |
作为 sequence
数组的第一个元素,而 &
作为第二个元素。