名企真题-警察抓小偷游戏——数学

  • Post author:
  • Post category:其他

题目描述

如下图,地图由凸点和凹点交替组成的N角星形状,警察和小愉初始在地图的凸点位置,每轮小偷和警察依次移动(小偷先走),移动方向固定为逆时针移动小娟C202
警察每次走2步,小愉奇数轮走1步,偶数轮走2步,小偷移动到出发点位置时停走一轮。
请编写一个程序,找出警察抓住小愉的最少移动次数。

说明:只有警察移动时,且移动的终点刚好与小偷位置重合则抓成功; 

求解思路

输入输出示例

样例1

输入:5 1 2

输出:7

解释:小偷移动办步到达凸点3的位置,警察移动7步也到的凸点3的位置。

代码

public class test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt()*2;
        int i = (sc.nextInt()-1)*2;//jingcha
        int j = (sc.nextInt()-1)*2;//xiaotou
        int count = 0;
        int tag = 0;//0 
        int tag2 = 0;
        while(i!=j){
            if(tag2 == 1 && j == 0){
                tag2 = 0;
                continue;
            }
            if(tag == 0){
                j = (j+1)%n;
                tag = 1;
            }else {
                j = (j + 2)%n;
                tag = 0;
            }
            if(j == 0){
                tag2 = 1;
            }
            i = (i+2)%n;
            count++;

        }
        System.out.println(count);


    }
}


版权声明:本文为weixin_44564247原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。