知识点:
排序找出最大公约数则为公差
- #include
- using namespace std;
- typedef long long ll;
- const int N = 2e5 + 10;
- int a[N], n;
- int gcd(int a, int b)
- {
- return a ? gcd(b % a, a) : b;
- }
- int main()
- {
- cin >> n;
- for(int i = 1; i <= n; i ++)
- {
- cin >> a[i];
- }
- sort(a + 1, a + 1 + n);
- int d = 0;
- for(int i = 2; i <= n; i ++)
- {
- d = gcd(d, a[i] - a[i - 1]);
- }
- if(d == 0)cout << n;
- else cout << (a[n] - a[1]) / d + 1;
- return 0;
- }