问题分析:不妨包含这N个整数的最短的等差数列有n项,且公差为d项数n=(最大的-最小的)/d+1要使得n最小,最大的和最小的数字已经由题目给定,那么问题转化为求d最大的问题下面举个例子2461020(排序好了)相邻两项的差值分别为22410由于这串数据是从等差数列取得,因此任意差值一定是d的倍数设每个差值是公差的k倍(k>=1),因此差值可以表示为kd>=d所以对于例子,我们可以列出d所以d的一个必要条件:s代表相邻两项差值组成的集合,d强调,为什么是必要条件而不是充分条件:原因在于当d=min(s),未必能构成等差数列,比如138,d观察两组数据seq=[2,4,6,10,20]d=[2,2,4,10]dmax=2seq=[1,3,8]d=[2,5]dmax=1我们不妨考虑数组d,里面有N个数据,猜测dmax=N个数据的最大公约数(确实是基于猜测,完整的数学证明还请高手指教)下面问题就转化为求N个数据的最大公约数:对于求两个数的gcd,我们已经掌握,那么求N个数字的gcd,我们可以采用递归.求N个数字的gcd(数字存在列表当中)板子:defgcd(a,b):>>考察几何逻辑(填空压轴)答案1391问题分析:我们可以通过数学递推的手段(找规律),读者请务必作图!要研究n条直线0个圆最多划分的区域,设递归式为a[n][m]:那么先研究n条直线0个圆的情况a[n][0],由于研究划分最多的区域,因此交点尽可能多.容易知道,第n条直线与前n-1条直线至多有n-1个交点.因此作图可发现规律a[n][0]=2+(2+3+4...+n)然后研究n条直线1个圆的情况a[n][1],由于研究划分最多的区域,因此交点尽可能多.容易知道,1个圆与1条直线至多有2个交点,因此作图可发现规律a[n][1]=4+(4+5+....n+2)然后研究n条直线2个圆的情况a[n][2],作图可知可发现规律a[n][2]=8+(6+7+....n+4)然后这里容易出错(第一个数字并非是2的指数次幂),找规律一般需要3个以上同理得a[n][3]=14+(8+...n+6)观察每种情况的首项,相邻项作差得到2,4,6...可得a[n][m]展开后的首项为m(m+1)+2后半部的等差数列,首项排列(2,4,6,8...),可得等差数列首项为2(m+1)等差数列最后一项和第一项始终保持差值n-2,因此a[n][m]=m(m+1)+2+[2(m+1)+........2(m+1)+n-2]可得答案1391我是小郑正在奔赴热爱奔赴山海!如果喜欢麻烦给个三连~