赛码-投篮游戏-java

题目描述

小赛最近迷上了篮球,报名参加一个投篮游戏。球场有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();
    }
}

你可能感兴趣的:(赛码刷题,码代码积累)