原题链接:蓝桥杯2019年第十届省赛真题-等差数列
0.0分
9 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
#include<iostream> using namespace std; int main (){ int n;int t; int ans=0; cin >>n;int num[n]; for(int i=0;i<n;i++){ cin >>num[i]; } int min=num[1]-num[0]; for(int j=0;j<n-1;j++){ for(int i=0;i<n-j-1;i++){ if(num[i]>num[i+1]){ t=num[i]; num[i]=num[i+1]; num[i+1]=t;} } } for(int k=0;k<n-1;k++){ int m=num[k+1]-num[k]; if(m<min) min=m; } if(min==0) cout<<n; ans=((num[n-1]-num[0])/min)+1; cout<<ans; return 0; } 大佬们帮我看看,我这个为什么老师运行错误了,谢谢大家了#include<iostream> #include<algorithm> //提供sort函数 默认非降序排列 using namespace std; int main() { int n; cin>>n; int a[n]; for(int i=0; i<n; i++) { cin>>a[i]; } sort(a,a+n); int tem=a[1]-a[0]; for(int i=0; i<n-1; i++) { //找等差(差值最小的即所求) int k=a[i+1]-a[i]; if(k<tem) tem=k; } for(int i=1;i<n;i++){//判断是否为特殊情况(等差为1) if((a[i]-a[0])%tem!=0){ cout<<a[n-1]-a[0]+1; return 0; } } if(tem==0) cout<<n; //特判等差为0的情况,不加的话 通过91 else cout<<(a[n-1]-a[0])/tem+1; return 0; }