解题思路:
公差不是我们简单的认为最小的差值。而是差值的最大公约数。
举个例子
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语言代码)浏览:728 |
Pascal三角 (C语言代码)浏览:1189 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:968 |
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:524 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:1311 |
C语言程序设计教程(第三版)课后习题9.8 (C语言代码)浏览:616 |
【计算球体积】 (C语言代码)浏览:1103 |
完数 (C语言代码)浏览:693 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:549 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:591 |