• 【遇见时光】笔试-下蹲-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 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 
  • 相关阅读:
    MPP架构简介
    redis5.0 集群卡槽混乱解决方案
    python 批量删除文件扩展名
    【组原】微命令、微指令、微操作和微程序
    从零部署.NetCoreAPI到Linux 下
    gnom(ubuntu) 随机更换桌面壁纸软件(脚本)
    vscode 更换背景图片的 python 脚本
    打开 vscode 随机更换背景
    WebRTC M91 DShow Camera Jabra PanaCast 50 绿屏问题修复
    ES学习笔记
  • 原文地址:https://www.cnblogs.com/yujianshiguang/p/5858872.html
Copyright © 2020-2023  润新知