OJ 第m小数

Posted Life is Binary

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了 OJ 第m小数相关的知识,希望对你有一定的参考价值。

第m小数

发布时间: 2017年12月10日 17:46   最后更新: 2017年12月12日 16:39   时间限制: 10000ms   内存限制: 128M

给定N个正整数,数据值范围是1…10000,N个数中可能会有重复数据,你是否可以编个程序求其中第m小的数。对于重复数据,应分别计数,如样例数据所示。

每组测试数据包括两行,第一行是两个正整数N(N<=1000000),M(M<=N),表示有N个测试数据,求第M小的数,第二行给出N个数。最后一行是两个0表示输入结束。

每组测试数据中第m小的数

10 3
14 25 39 22 7 7 31 4 22 67
0 0
7
代码
  只用了冒泡。
 1 #include <stdio.h>
 2 int main(){
 3     int n,m,x;
 4     int num[1000];
 5     int i,j;
 6     while(scanf("%d%d",&n,&m) != EOF){
 7         if(n == 0 && m == 0)
 8                 break;
 9         i = 0;
10         while(i < n){
11             scanf("%d",&x);
12             num[i] = x;
13             i++;
14         }
15         for(i = 0; i < n; i++){
16             for(j = 0; j < n - i - 1; j++){
17                 if(num[j] > num[j+1]){
18                     x         = num[j];
19                     num[j]     = num[j+1];
20                     num[j+1] = x;
21                 }
22             }
23         }
24         for(i = 0; i < m; i++){
25             if(i == m-1)
26                 printf("%d\n",num[i]);
27         }
28     }
29     return 0;
30 }

 

 

以上是关于 OJ 第m小数的主要内容,如果未能解决你的问题,请参考以下文章

OJ2237第k小数题解

kotlin-从一个片段更改多个片段的小数位

OJ2130K小数查询

#29.广场舞——Yucai OJ第19次测试

小米OJ-找到第N个数字等差数列的使用

九度OJ刷题——1013:开门人和关门人