解题思路:
公差不是我们简单的认为最小的差值。而是差值的最大公约数。
举个例子
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语言程序设计教程(第三版)课后习题8.6 (C语言代码)浏览:572 |
矩形面积交 (Java代码)浏览:1213 |
C语言训练-计算一个整数N的阶乘 (C语言代码)浏览:929 |
C语言程序设计教程(第三版)课后习题10.1 (Java代码)浏览:1436 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:548 |
C语言程序设计教程(第三版)课后习题6.8 (C语言代码)浏览:522 |
C语言训练-自由落体问题 (C语言代码)浏览:611 |
1128题解(返回值为数组的情况)浏览:451 |
模拟计算器 (C++代码)浏览:800 |
罗列完美数 (C语言代码)浏览:491 |