Java程序练习-狼找兔子


狼找兔子
时间限制: 10000ms内存限制: 1024kB
描述
一座山周围有n个洞,顺时针编号为0,1,2,...n-1.
而一只狼从0号洞开始,顺时针方向计数,每遇到m个洞就进洞找兔子.例如n=5,m=3,狼经过的洞依次为0,3,1,4,2,0.那么兔子有没有幸免的机会?如果有,该藏在哪儿?
输入
n m (<2.1*10^9)
输出
若兔子有幸免的机会则输出所有可以藏身的洞,输出洞的个数,反之,输出-1。
样例输入
5 1
样例输出
-1
参考代码

  1. /* 
  2.  * wolf hunts rabbit 2011-10-2 12:24PM Eric Zhou 
  3.  */  
  4. import java.util.Scanner;  
  5. public class Main {  
  6.     public static void main(String[] args) {  
  7.         Scanner cin = new Scanner(System.in);  
  8.         int a = cin.nextInt();  
  9.         int b = cin.nextInt();  
  10.         int v = a - a / gcd(a,b);  
  11.         if(v == 0)  
  12.             System.out.println(-1);  
  13.         else  
  14.             System.out.println(v);  
  15.     }  
  16.     private static int gcd(int a, int b) {  
  17.         int max = Math.max(a, b);  
  18.         int min = Math.min(a, b);  
  19.         int mod = max % min;  
  20.         if (mod == 0) {  
  21.            return min;  
  22.         }else {  
  23.            return gcd(mod, min);  
  24.         }  
  25.     }  
  26. }  

相关内容