第十届蓝桥杯 等差数列(Python)
生活随笔
收集整理的這篇文章主要介紹了
第十届蓝桥杯 等差数列(Python)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目:
思路:
1、給數組排序,求出兩兩之間的差值即公差,如果差值為0,直接返回n,否則進入第二步;
2、給差值數組排序,求出兩兩之間的最大公因數即公差
代碼:
def gcd(x, y):while y:x, y = y, x%yreturn x n = int(input()) a = list(map(int, input().split())) a.sort() s = [] k = max(a)-min(a) for i in range(n-1):s.append(a[i+1]-a[i]) s.sort() d = min(s) if d == 0:res = n else:d = gcd(s[0],s[1])for i in range(3, len(s)):d = gcd(d,s[i])res = k//d+1 print(res)總結
以上是生活随笔為你收集整理的第十届蓝桥杯 等差数列(Python)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 排序算法-查找算法
- 下一篇: 算法竞赛入门经典 例题6-2 铁轨(C、