Java的排列组合问题

2025-03-24 04:43:19
推荐回答(3个)
回答1:

package com;

import java.util.Arrays;
import java.util.LinkedList;
import java.util.Scanner;

public class Kyo
{
public static void recursionSub(LinkedList list, int count, int[] array, int ind,
        int start, int... indexs)
{
start++;
if(start > count - 1)
{
return;
}
if(start == 0)
{
indexs = new int[array.length];
}
for(indexs[start] = ind; indexs[start] < array.length; indexs[start]++)
{
recursionSub(list, count, array, indexs[start] + 1, start, indexs);
if(start == count - 1)
{
int[] temp = new int[count];
for(int i = count - 1; i >= 0; i--)
{
temp[start - i] = array[indexs[start - i]];
}
list.add(temp);
}
}
}

public static void main(String[] args)
{
Scanner scanner = new Scanner(System.in);
System.out.println("输入n的值: ");
int n = scanner.nextInt();
int[] A = new int[n];
int[] B = new int[n];
System.out.println("输入A数组的值: ");
for(int i = 0; i < n; i++)
{
A[i] = scanner.nextInt();
}
System.out.println("输入B数组的值: ");
for(int i = 0; i < n; i++)
{
B[i] = scanner.nextInt();
}
System.out.println("A: " + Arrays.toString(A));
System.out.println("B: " + Arrays.toString(B));
System.out.println("输入k的值: ");
int k = scanner.nextInt();
scanner.close();
LinkedList listA = new LinkedList();
recursionSub(listA, k, A, 0, -1);
LinkedList listB = new LinkedList();
recursionSub(listB, k, B, 0, -1);
int result = 0;
String tmp = "", bnp = "";
for(int i = 0; i < listA.size(); i++)
{
int[] as = listA.get(i);
int[] bs = listB.get(i);
int sum = 0;
for(int j = 0; j < as.length; j++)
{
sum += as[j];
}
int mul = 1;
for(int j = 0; j < bs.length; j++)
{
mul *= bs[j];
}
int w = sum * mul;
result += w;
String y = "x" + (i + 1);
System.out.println(y + " = " + w);
tmp += y;
bnp += w;
if(i == listA.size() - 1)
{
System.out.println("∑x" + " = " + tmp + " = " + bnp + " = " + result);
}
else
{
tmp += " + ";
bnp += " + ";
}
}
}
}

回答2:

int count=0;
int[] a={1,3,5,7,9};
int[] b={2,4,6,8};
for(int i=0;i for(int j=0;j count+=a[i]*b[j];
System.out.println(a[i]+"*"+b[j]+"="+a[i]*b[j]);
}
}
System.out.println(count);

不知道是不是这个意思,希望有帮到

回答3:

不明白要做什么?
能否写清楚点。