这个题就是求一段线段上整数点的个数。然后完全不知道这个竟然是两个边的最大公约数、、、也就是相似三角形的个数,所以加上一个原有的点就是答案。
#include <cstdio> #include <cstring> #include <cmath> #include <vector> #include <iostream> using namespace std; long long int x1,x2,yy,y2,t; long long int gcd(long long int a,long long int b) { if(b==0) return a; else return gcd(b,a%b); } int main() { scanf("%d",&t); for(int i=1; i<=t; i++) { scanf("%lld%lld%lld%lld",&x1,&yy,&x2,&y2); long long int ans=gcd(abs(x1-x2),abs(yy-y2)); printf("Case %d: %lld\n",i,ans+1); } return 0; }