解题思路:
公差不是我们简单的认为最小的差值。而是差值的最大公约数。
举个例子
6
2 4 7 8 12 15
等于14
参考代码:
#include
using namespace std;
int a[100005];
int gcd(int a,int b)
{
if(b==0)
return a;
else
return gcd(b,a%b);
}
int main()
{
int n;
cin>>n;
int i;
for(i=0;i<n;i++)
{
cin>>a[i];
}
sort(a,a+n);
int temp=a[1]-a[0];
for(i=2;i<n;i++)
{
int temp1=a[i]-a[i-1];
temp=gcd(temp,temp1);
}
if(temp==0)
{
cout<<n<<endl;
return 0;
}
int sum=0;
sum=(a[n-1]-a[0])/temp;
cout<<sum+1<<endl;
}
0.0分
1 人评分
C语言考试练习题_一元二次方程 (C语言代码)浏览:773 |
【绝对值排序】 (C++代码)浏览:720 |
C语言程序设计教程(第三版)课后习题6.2 (C语言代码)浏览:1432 |
WU-printf基础练习2 (C++代码)浏览:2061 |
1048题解(读入回车问题)浏览:628 |
复数求和 (C语言代码)浏览:994 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:494 |
输入输出格式练习 (C语言代码)浏览:773 |
盐水的故事 (C语言代码)浏览:1602 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:501 |