新人考试(100分) 有10道2分题..

新人考试(100分) 有10道2分题..

题一:新人考试(100分)

题目描述

有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);   }}
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部