L1-100 四项全能 - java

题目解析

求n个人中m个技能都会的同学有几个?

解题思路

可以先计算出,每种技能会的人数。

那么 所有人m个技能都会的人数 - 已知技能会的人数 = 会m种及以下的人数

再 总人数 - 会m种及以下的人数 = 全会的人数

但是可能会出现 会m种及以下的人数 大于 总人数, 如果出现了这种情况的话,那么全会的人数为0

比如:

50 4
1 1 1 1

代码

import java.io.*;
import java.util.*;

public class Main
{

	public static void main(String[] args)
	{
		int n = sc.nextInt();
		int m = sc.nextInt();
		int ans = 0; // 技能会的人数
		for (int i = 1; i <= m; i++)
		{
			int x = sc.nextInt();
			ans += x;
		}

		int res = n * m - ans; // m种都会 - 技能会的人数 = 只会m种及以下的人数
		out.println(Math.max(0, n - res));

		out.flush();
		out.close();
	}

	static Scanner sc = new Scanner(System.in);
	static PrintWriter out = new PrintWriter(System.out);

}


团体程序设计天梯赛-练习集-java

赞赏