现有一笔借款请求(target),借款需要从可用资金列表中(n笔)匹配k笔资金,请问有多少种匹配方案。
例如:借款金额10万,可用资金有8、7、3、2、1,则一共有3种匹配方案,分别(8,2)(7,3)(7,2,1)。
请将上述过程抽象成算法,并实现kSum函数。
说明:
1、n、k均为正整数,且k<=n
2、只考虑完全匹配的情况
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
// 匹配方案个数
public static int count = 0;
public static void kSum(List<Integer> numbers, int target) {
//实现逻辑
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String source = sc.nextLine();
String[] str = source.split(",");
List<Integer> in = new ArrayList<Integer>();
for (int i = 0; i < str.length; i++)
in.add(Integer.parseInt(str[i]));
int target = Integer.parseInt(sc.nextLine());
kSum(in, target);
System.out.println(count);
}
}
可将上述代码复制到代码框,并实现kSum函数,也可以自行编码实现