#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; }
这道题数据好弱,如果1 3 6,答案应该是6,作者您的代码的结果是3,应该不正确,但是能ac,那应该是数据弱
AngelCaval 2020-09-18 21:33:57 |
老兄,人家要的是最少项数
你算哪个bug 2020-09-28 08:58:28 |
嗯嗯 是的,没有考虑到等差为1的情况,网站的数据不全面 ,谢谢你的提醒哦
旺仔 2021-03-11 14:27:47 |
我也为此懵逼 1 7 11 也是如果按照最小差值为4根本就不是等差数列了
【出圈】 (C语言代码)浏览:1025 |
WU-玉龙学长买雪糕 (C++代码)浏览:1154 |
WU-IP判断 (C++代码)(一种有趣的实现方法)浏览:1572 |
陶陶摘苹果 (C语言代码)浏览:608 |
奖学金 (C语言代码)浏览:2103 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:481 |
【出圈】 (C语言代码)浏览:638 |
C语言程序设计教程(第三版)课后习题8.5 (C语言代码)浏览:587 |
危险系数 (C++代码)浏览:1261 |
可重入函数与不可重入函数浏览:1397 |