华为机试---投篮游戏
2016-06-24 18:01
411 查看
[b]输入描述:[/b]
[b]输出描述:[/b]
[b]输入例子:[/b]
[b]输出例子:[/b]
题目描述
有一个投篮游戏。球场有p个篮筐,编号为0,1...,p-1。每个篮筐下有个袋子,每个袋子最多装一个篮球。有n个篮球,每个球编号xi 。规则是将数字为xi 的篮球投到xi 除p的余数为编号的袋里。若袋里已有篮球则球弹出游戏结束输出i,否则重复至所有球都投完。输出-1。问游戏最终的输出是什么?[b]输入描述:[/b]
第一行两个整数p,n(2≤p,n≤300)。p为篮筐数,n为篮球数。接着n行为篮球上的数字xi(0≤xi≤1e9)
[b]输出描述:[/b]
输出游戏的结果
[b]输入例子:[/b]
10 5 0 21 53 41 53
[b]输出例子:[/b]
4
import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner scan = new Scanner(System.in); while(scan.hasNext()){ int p = scan.nextInt(); int n = scan.nextInt(); int[] ball_num = new int ; for(int i = 0 ; i < n ; i++){ ball_num[i] = scan.nextInt(); } System.out.println(getFinalOutput(ball_num , p , n)); } scan.close(); } private static int getFinalOutput(int[] ball_num, int p, int n) { int data = 0; int index = 0;//计算篮球应该保存在编号为index的篮筐下 boolean[] flag = new boolean[p]; int i = 0; for(; i < n ; i++){ index = ball_num[i] % p; //编号为i的篮筐下已经有篮球,弹出篮球,返回i if(flag[index] == true){ data = i + 1; break; }else{ flag[index] = true; } } if(i == n){ data = -1; } return data; } }
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树