java语言解决一道题目。题目描述 舞会收到很多假票。要求编写程序,统计所有门票中存在假票的门票数。 输入 输入文件中包含多个测试数据。每个测试数据占两行。第1行为两个整数N和M,分别表示发放门票的张数和参加晚会的人数(1 <= N <= 10000 , 1 <= M <= 20000)。第2行为M个整数Ti,为收到的M张门票的号码(1 <= Ti <= N)。最后一个输入N = M = 0代表输入结束。 输出 对每个输入测试数据,你的程序要输出一行,为一个整数,表示有多少张票被伪造过。 样例输入 Copy 5 5 3 3 1 2 4 6 10 6 1 3 6 6 4 2 3 1 2 0 0 样例输出 Copy 1 4
时间: 2024-02-22 10:57:17 浏览: 16
好的,我来给您提供一个Java语言的解决方案:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (true) {
int n = in.nextInt();
int m = in.nextInt();
if (n == 0 && m == 0) {
break;
}
int[] nums = new int[n + 1];
for (int i = 0; i < m; i++) {
int t = in.nextInt();
nums[t]++;
}
int count = 0;
for (int i = 1; i <= n; i++) {
if (nums[i] > 1) {
count++;
}
}
System.out.println(count);
}
}
}
```
这个程序首先读取输入数据,然后使用一个数组来统计每个门票号码出现的次数。最后再遍历一遍数组,统计有多少门票号码出现了不止一次,这样就能得出假票的数量了。
希望对您有帮助!