天任考研小编为大家整理了“24考研计算机C语言编程问题知识点:大公约问题”相关内容,为报考计算机专业的考生们提供指导。更多有关计算机考研干货可关注考研备考栏目。
24考研计算机C语言编程问题知识点:大公约问题
一个山洞有n个入口,如n=6,有编号0——5号洞口,兔子藏在其中的一个,狼逆时针寻找(我不明白这句,但是题里应该给了),隔m个一进洞,输入m n,如:
输入2 6,则狼进入的洞口号为:0 2 4 0,兔子在1 3 5号洞口安全。
要求:先输入测试组数,再输入 m n,若存在安全洞口输出“YES”,否则输出“NO”。
解题思路:这个问题抽象一下,就是"有n个山洞,每m个访问一下,看是否能遍历所有的山洞"
1)两个数只要互质,就能遍历。
2)用辗转相除法(返回的是两个数的大公约数)来判断是否互质。如果返回1,那么这两个数互质,所以可以遍历。否则不可以遍历。
#include
/**
* 辗转相除法,用来求大公约数
*/
int mul(int a , int b){
int temp;
while(b != 0){
temp = b;
b = a%b;
a= temp;
}
return a;
}
int main(){
int t;
scanf("%d",&t);
while(t--){
int a,b;
scanf("%d%d",&b,&a);
if(mul(a,b) != 1){
printf("YES\n");
}else{
printf("NO\n");
}
}
}
以上是天任考研小编为大家带来的“24考研计算机C语言编程问题知识点:大公约问题”希望考生们都能备考顺利,考上自己心仪的院校。