[蓝桥杯2019初赛]等差数列-数列
生活随笔
收集整理的這篇文章主要介紹了
[蓝桥杯2019初赛]等差数列-数列
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
解題思路:
給你n個數,是某個等差數列的一部分,問該等差數列最小有幾項?:((最大數?最小數)/d)+1((最大數-最小數)/d)+1((最大數?最小數)/d)+1,其中d是該等差數列所有(所有已知數與最小數差值)的最大公因數,還要特別考慮如果d = 0的時候,就是n
代碼如下:
#include <iostream> #include <algorithm> using namespace std; const int N = 100010; int a[N];int gcd(int a, int b) {return b ? gcd(b, a % b) : a; }int main() {int n;cin >> n;for (int i = 0; i < n; i++)cin >> a[i];sort(a, a + n);int d = 0;for (int i = 1; i < n; i++) {d = gcd(d, a[i] - a[0]);}if (!d)cout <<n << endl;else{cout<<(a[n-1]-a[0])/d+1<<endl;}return 0; }總結
以上是生活随笔為你收集整理的[蓝桥杯2019初赛]等差数列-数列的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 河虾的功效与作用、禁忌和食用方法
- 下一篇: [蓝桥杯2019初赛]矩形切割-找规律