题目描述
小赛最近迷上了篮球,报名参加一个投篮游戏。球场有p个篮筐,编号为0, 1, …, p-1,每个篮筐下面有个袋子,每个袋子最多能装入一个篮球。现在有n个篮球,第i个篮球有一个数字xi,投篮规则是将数字为xi的篮球,投入篮筐编号为xi除以p所得的余数。如果袋子里面已经有球,那么篮球就会弹出,投篮游戏结束,输出i;否则重复进行将篮球投完,游戏结束,输出-1。问小赛会在何时结束游戏?
主要思路:
就是不断地投篮判断结不结束
见代码:
import java.util.Scanner;
/**
* 投篮游戏
*/
public class Saima23 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int p = scan.nextInt();
int n = scan.nextInt();
boolean[] used = new boolean[p];
int i = 1;
while( i <= n){
int curr = scan.nextInt();
int res = curr % p;
if (used[res]) {
System.out.println(i);
return;
}else{
used[res] = true;
}
i++;
}
System.out.println(-1);
scan.close();
}
}