我的输入是一个整数假设M,程序必须打印两个整数x和ywhere 的所有组合x + y = M。
让我们将输入作为M = 50和数组元素作为25 20 25 30 15 45 45 5 ,我需要的输出是
5 45,20 30,25 25.
但我的输出是
5 45,5 45,20 30,25,25
如何消除那两次的发生5 45?
我的代码如下
Scanner s = new Scanner(System.in);
int m = s.nextInt();
s.nextLine();
String str = s.nextLine();
StringTokenizer st = new StringTokenizer(str);
int len = st.countTokens();
int[] a = new int[len];
String[] temp = new String[len];
for (int i = 0; i < len; i++)
{
temp[i] = st.nextToken();
a[i] = Integer.parseInt(temp[i]);
}
Arrays.sort(a);
for (int i = 0;i < len-1; i++)
{
for(int j = i + 1; j < len; j++)
{
if ((a[i] +a [j]) == m)
System.out.println(a[i] + " " + a[j]);
}
}
白衣非少年
相关分类