NYOJ 189 兔子的烦恼(一)

地址:http://acm.nyist.net/JudgeOnline/problem.php?pid=189

思路:经过推算,如果m和n的最大公约数是1时,狼就会把所有的洞进过一边,这样兔子在劫难逃,如果最大公约数不是1,则狼进的洞口编号就是m的倍数,那么兔子就有可能存活,此题关键是看狼是否按着每隔m-1个洞把所有的洞转完。

 1 #include<stdio.h>

 2 int gcd(int a,int b)

 3 {

 4     if(b==0)

 5        return a;   // 如果b为0则a就是a和b的最大公约数

 6     else

 7        return gcd(b,a%b);   // 否则,继续辗转相除,递归调用自身,以获得最大公约数

 8 }

 9 int main()

10 {

11     int m,n,t;

12     while(~scanf("%d%d",&m,&n))

13     {

14         t=gcd(m,n);

15         if(t==1)   //即m和n的最大公约数是1那么狼就会把所有的洞口转完

16         puts("NO");

17         else

18         puts("YES");

19     }

20     return 0;

21 } 

你可能感兴趣的:(OJ)