lightoj 1077 - How Many Points? 最大公约数

题意:求一线段上整数点的个数,整数点(x,y),x和y均为整数。

题解:一段线段(x1,y1)(x2,y2)上的整数点个数为gcd(abs(x2-x1),abs(y2-y1))+1;这个可以通过相似三角形来证明。这题只需要注意下超int就OK了。


#include 
#include 
#include 
#include 
#include 
using namespace std;
#define LL long long
LL gcd(LL a,LL b)
{
    return b==0?a:gcd(b,a%b);
}
int main()
{
    LL T,tt=0;
    scanf("%lld",&T);
    while(T--)
    {
        LL x1,y1,x2,y2,a,b,ans=0;
        scanf("%lld%lld%lld%lld",&x1,&y1,&x2,&y2);
        a=abs(x2-x1);
        b=abs(y2-y1);
        //cout<


你可能感兴趣的:(lightoj数论专题)