网站开发维护印花税,大连网站开发公司排名,美食网站网站建设定位,建筑设计建模软件2020年分配口罩 【问题描述】 某市市长获得了若干批口罩#xff0c;每一批口罩的数目如下#xff1a;#xff08;如果你把以下文字复制到文本文件中#xff0c;请务必检查复制的内容是否与文档中的一致。在试题目录下有一个文件 mask.txt#xff0c;内容与下面的文本相同…2020年分配口罩 【问题描述】 某市市长获得了若干批口罩每一批口罩的数目如下如果你把以下文字复制到文本文件中请务必检查复制的内容是否与文档中的一致。在试题目录下有一个文件 mask.txt内容与下面的文本相同 9090400 8499400 5926800 8547000 4958200 4422600 5751200 4175600 6309600 5865200 6604400 4635000 10663400 8087200 4554000 现在市长要把口罩分配给市内的 2 所医院。由于物流限制每一批口罩只能全部分配给其中一家医院。市长希望 2 所医院获得的口罩总数之差越小越好。请你计算这个差最小是多少 【答案提交】 这是一道结果填空题。 我最开始以为需要把这些口罩都分给两所医院但不是求分的口罩数的差值最小就可以。
代码
import java.util.Scanner;
public class Main {//分配口罩static int[] arr new int[15];static int sum 0;static int cha 0x3f3f3f3f;public static void main(String[] args) {Scanner sc new Scanner(System.in);//将口罩数目从键盘录入for(int i 0; i 15; i) {arr[i] sc.nextInt();}//将口罩的总数目算出来for(int i 0; i 15; i) {sum arr[i];}dfs(0,0);//深度优先遍历每一层和口罩的值System.out.println(cha);}//dfspublic static void dfs(int d, int v) {//先写递归的终止条件if(d 15) cha Math.min(cha, Math.abs(sum - v - v));else {dfs(d 1, v arr[d]);dfs(d 1, v);}}
}注意的几点 1.若是找到比cah小的则更新cha ,所以cha不能太小我们定义为0x3f3f3f3f,表示整形范围内一个无穷大的数。 2.递归退出时我们算cha值在cha和sum-两批口罩取一个较小的值 3.递归遍历的时候层数更深是层数