什么是格点:
格点是指横纵坐标均为整数的点。
题目描述:
给定平面上的两个格点P1=(x1,y1)和P2=(x2,y2),线段P1P2上,除了P1和P2以外,一共有几个格点
样例输入:
1 11
5 3
样例输出:
2 9
3 7
4 5
3
题目分析:
我们用辗转相除法求最大公约数。
求哪两个数的最大公约数?
两点横坐标的距离和两点纵坐标的距离。然后再用这两个距离除以最大公约数。
为什么要这么做?
有了两个距离的最大公约数,我们就可以把横纵距离均匀的分开。分出来之后,就会保证这些点在这条直线上。
用C实现:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
//定义递归函数,辗转相除法求最大公约数
int gcd(int a,int b){
if(b==0) return a;
return gcd(b,a%b);
}
int main(int argc