首页 > 代码库 > 笔试-下蹲-java实现

笔试-下蹲-java实现

美团内推笔试编程题:有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 stub36         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 61 2 3 4 4 3N Y N Y Y N 

 

笔试-下蹲-java实现