码迷,mamicode.com
首页 > 编程语言 > 详细

笔试-下蹲-java实现

时间:2016-09-10 11:41:57      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:

美团内推笔试编程题:有5个人,编号1,2,3,4,5,裁判叫号叫到1,编号1蹲,叫到2,编号2,3蹲,叫到3,编号4,5,1蹲,以此类推;先选定一个人编号p,判断该人在每次叫号时蹲不蹲,蹲输出Y,不蹲输出N

思路:用两个int型记录应该下蹲的起始和末尾的编号,分别为m,n

1.当p>=m&&p<=n时,说明p在m,n之间

2.累次之后也就是叫号累加超过5了就会出现如:要4,5,1蹲的情况,此时p>=m&&p<=5&&p>=0&&p<=n;

java代码如下:

 1 package test;
 2 import java.util.Scanner;
 3 
 4 //有5个人,编号1,2,3,4,5,裁判叫号叫到1,编号1蹲,叫到2,编号2,3蹲,叫到3,编号4,5,1蹲,以此类推
 5 public class UpAndDown {
 6     public static void Down(int p,int[] a){
 7         int sum =0;
 8         for(int i=0;i<a.length;i++){
 9             int m = (sum+1+5)%5;
10             //有可能出现m为0的情况,但m不可能为0,此时m应该是5,所以特殊处理,n同理
11             if(m==0)
12                 m=5;
13             int n = (sum+a[i])%5;
14             if(n==0)
15                 n=5;
16             sum+=a[i];
17             if(m<=n){
18                 if(p>=m&&p<=n){
19                     System.out.println("Y"+" ");
20                 }else{
21                     System.out.println("N"+" ");
22                 }
23             }else{
24                 if(p>=m&&p<=5&&p>=0&&p<=n){
25                     System.out.println("Y"+" ");
26                 }else{
27                     System.out.println("N"+" ");
28                 }
29             }
30             
31         }
32     }
33 
34     public static void main(String[] args) {
35         // TODO Auto-generated method stub
36         Scanner in=new Scanner(System.in);
37         int p=in.nextInt();
38         int q=in.nextInt();
41         int [] a=new int[q];
42         for (int i = 0; i < q && in.hasNext(); i++) {
43             a[i] = in.nextInt();
44         }
45 //        in.close();
46         Down(p,a);
47 //        in.close();
48     }
49 
50 }

运行结果:

3 6
1 2 3 4 4 3
N 
Y 
N 
Y 
Y 
N 

 

笔试-下蹲-java实现

标签:

原文地址:http://www.cnblogs.com/yujianshiguang/p/5858872.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!