给定平面的两个格点 P1=(x1,y1) 和 P2=(x2,y2) , 线段 P1P2 上, 除 P1 和 P2 外一种有几个格点?
输入
- 输入包含 4 个整数,分别表示 x1,y1,x2,y2
- −109≤x1,y1,x2,y2≤109
输出
- 输出一个整数,表示格点的个数
样例 1
输入
1 11 5 3
输出
3
#include<bits/stdc++.h>
using namespace std;
int gcd(int a,int b)
{
if(b==0)
return a;
else
gcd(b,a%b);
}
int main()
{
int x1,x2,y1,y2;
while(cin>>x1>>y1>>x2>>y2)
{
int x,y;
x=abs(x1-x2);
y=abs(y1-y2);
if(x==y==0){
cout<<"0"<<endl;
return 0;
}
cout<<x/(x/gcd(x,y))<<endl;
}
}