现有一笔借款请求(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函数,也可以自行编码实现