题解 2305: 蓝桥杯2019年第十届省赛真题-等差数列

来看看其他人写的题解吧!要先自己动手做才会有提高哦! 
返回题目 | 我来写题解

筛选

优质题解

2305: 蓝桥杯2019年第十届省赛真题-等差数列(C语言代码)快速排序/碾转相除法

##解题思路:等差数列,首项a1,尾项an,公差为d。由各数间的关系得n=(an-a1)/d+1。用数组存储输入的数列。公差需由各相邻项的差值的最大公约数计算,当输入的各项为2612,各差值为46,公差为最大公约数2。用辗转相除法求最大公约数。

菜鸡的题解007——等差数列

gcd(最小公约数)要记住(我是菜鸡,差点把冒号前后写错了)思路:用sort排序,然后依次从大到小求相邻数的差值,然后求这些差值的最大公约数,就是最大的公差(一定要注意不存在最大公约数的情况,即存在两个数相等,此时应输出n的值)参考代码:#include#include

平凡の解法

解题思路:我们看到这个题目,可以很快的转化为作为求排序后数组的两两之间的最小问题,当然也可以不需要排序,当然我这边直接偷懒直接sort,但是你追求效率的话你也可以直接快排,二分排,创建一个比较的大的假定公差d,然后一个for循环求最小值就可以了,不排序的话可以直接abs,当然注意边界情况。
优质题解

2305: 蓝桥杯2019年第十届真题-等差数列看了很多答案都不对-

测试样例:32612很多答案结果为3其实为6解题思路:先排序。因为该序列是等差数列的子序列。所以相邻两项的差一定是公差的倍数。而如果要得到序最小,那么一定要使得公差最大。所以要求出序列所有相邻两项差的最大公因数,最大公因数即使最大公差。过程:①排序②求出相邻两项之差d1,

等差数列常规做法

```cpp#includeusingnamespacestd;longlonga[100010];longlongn,m=1000,ji;intmain(){cin>>n;for(longlongi=0;i>a[i];}sort(a,a+n);//快速排序否则超时for(longlongi=1;i

一点代码注释

摘要:```cpp #include #include #include using namespace std; int main() { int N; cin>>N; int d……

Python满分答案

解题思路:先把列表排序,再找出最小的差值注意事项:参考代码:n=int(input().strip())ls=list(map(int,input().split()))ls.sort()ls_1=[]t=0foriinrange(n-1,0,