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 }