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 } 

posted on 2012-08-14 09:18  mycapple  阅读(343)  评论(0编辑  收藏  举报

导航