题目链接:
http://www.dotcpp.com/oj/problem.php?id=1268解题思路:
首先,对这组数据进行从小到大排序,拍好后,第k大的数字是a[n-k],可以推一下,第一大是a[n-1],其次a[n-2]........a[n-k],第一小的数字是a[0],而不是a[1],其次a[1],a[2].......a[k-1];temp = a[n-k] - a[k-1]
注意事项:数组最少开到10001,防止溢出,同时要注意temp的条件,是否大于等于2
参考代码:
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#define MAX 10003
using namespace std;
int main()
{
int a[MAX];
int n,k,i;
int temp;
scanf("%d %d",&n,&k);
for(i = 0;i < n;i++)
{
scanf("%d",&a[i]);
}
sort(a,a+n);
temp = a[n-k] - a[k-1];
for(i = 2;i < sqrt(temp);i++)
{
if(temp%i==0) break;
}
if(i>=sqrt(temp)&&temp>=2) printf("YES\n%d",temp);
else printf("NO\n%d",temp);
return 0;
}
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:553 |
【密码】 (C语言代码)浏览:350 |
小明A+B (C语言代码)浏览:1316 |
WU-蓝桥杯算法提高VIP-Quadratic Equation (C++代码)浏览:1808 |
C语言程序设计教程(第三版)课后习题6.3 (C++代码)浏览:1067 |
C语言程序设计教程(第三版)课后习题8.4 (C语言代码)浏览:628 |
1157题解浏览:769 |
C语言程序设计教程(第三版)课后习题10.3 (C语言代码)浏览:1968 |
C语言训练-求s=a+aa+aaa+aaaa+aa...a的值 (C语言代码)浏览:859 |
C语言程序设计教程(第三版)课后习题5.8 (C语言代码)浏览:672 |