本文主要是介绍hdu 1222 (数论+递推),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目链接:点击打开链接
题目分析:一开始以为只要n%m就可以但是明显错误
m=6,n=8;仍然可以,顿悟如果mn有公约数,那么在循环过程中距离差距会是固定的,但是如果差距不固定(公约数为1)那么不行。
貌似hdu上 %lld->%I64d long long->__int64
#include<algorithm>
#include<iostream>
#include<cstdio>
#include<cstring>
#include<vector>
using namespace std;
__int64 gcd(__int64 x,__int64 y)
{
return y==0?x:gcd(y,x%y);
}
int main()
{
__int64 n,m,p;
scanf("%I64d",&p);
while(p--)
{
scanf("%I64d%I64d",&m,&n);
if(m<n) swap(m,n);
printf("%s",gcd(m,n)==1?"NO\n":"YES\n");
}
return 0;
}
这篇关于hdu 1222 (数论+递推)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!