TripleDES CBC PKCS7PADDING 加密
654 2023-04-03 04:31:34
有10道2分题,10道4分题,5道8分题,满分100分,答对得分,答错不得分,累计错三道则停止作答结算分数
输入:最终作答者获得分数 n
输出:作答可能的情况总数 m
public class NC { // 情况计数 static int count = 0; //题目的分值数组 static int[] nums = {2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 8}; /** * @param target 目标扣分值。 例如分值是92 那么target = 100 - 92 = 8 * @param err 错题的数量。答错三体就退出 * @param mark 标记题目是否已经错过了。 */ public static void dfs(int target, int err, boolean[] mark) { if (target <= 0 || err == 2) { if (target == 0) { count++; } return; } for (int i = 0; i < nums.length; i++) { if (mark[i]) return; mark[i] = true; //第二个参数要填err+1 我一开始写的 ++err 找了半天不知道结果为什么错。 dfs(target - nums[i], err + 1, mark); mark[i] = false; } } public static void main(String[] args) { boolean[] mark = new boolean[25]; dfs(8, 0, mark); System.out.println(count); }}