题目1157:中位数
来源:互联网 发布:罗杰疑案知乎 编辑:程序博客网 时间:2024/05/17 22:51
- 题目描述:
中位数定义:一组数据按从小到大的顺序依次排列,处在中间位置的一个数(或最中间两个数据的平均数).
给出一组无序整数,求出中位数,如果求最中间两个数的平均数,向下取整即可(不需要使用浮点数)
- 输入:
该程序包含多组测试数据,每一组测试数据的第一行为N,代表该组测试数据包含的数据个数,1<=N<=10000.
接着N行为N个数据的输入,N=0时结束输入
- 输出:
输出中位数,每一组测试数据输出一行
- 样例输入:
4103020403403050412340
- 样例输出:
25402
C++代码:
#include<iostream>#include <algorithm>using namespace std;int main(){ int num[10001]; int n; while(cin>>n,n) { for(int i=0;i<n;i++) cin>>num[i]; sort(num,num+n); if(1==n%2) cout<<num[n/2]<<endl; else cout<<(num[n/2]+num[n/2-1])/2<<endl; } return 1;}/************************************************************** Problem: 1157 User: Carvin Language: C++ Result: Pending****************************************************************/
Java代码:
//package oj1157; import java.util.Arrays;import java.util.Scanner; public class Main{ public static void main(String args[]){ Scanner in=new Scanner(System.in); while(in.hasNext()){ int n=in.nextInt(); if(0==n) break; //n=0是程序结束 int []num=new int [n]; for(int i=0;i<n;i++) num[i]=in.nextInt(); Arrays.sort(num); int mid=(n-1)/2; if(0!=mid/2) System.out.println(num[mid]); else { System.out.println((num[mid]+num[mid+1])/2); } }//while }//main}//Main/************************************************************** Problem: 1157 User: Carvin Language: Java Result: Pending****************************************************************/
0 0
- 题目1157:中位数
- 题目1157:中位数
- 题目1157:中位数
- 题目1157:中位数
- 题目1157:中位数
- 题目 :中位数
- 九度OJ 题目1157:中位数
- 题目1157:中位数:快速排序思想
- 题目 13中位数
- 南阳理工ACM 题目124 中位数
- 其他题目---随时找到数据流的中位数
- 一道简单的寻找中位数的题目
- 中位数
- 中位数
- 中位数
- 中位数
- 中位数
- 中位数
- codeforces #310 555C C. Case of Chocolate(set的应用)
- 《Java程序设计》第16周周四:GUI编程及文件对话框的使用 计算器
- LeetCode-Contains Duplicate III-解题报告
- Java基础:数组
- Java新技术---线程学习之ThreadLocal
- 题目1157:中位数
- Best Time to Buy and Sell Stock
- Spring MVC-HandlerMapping
- Python学习笔记 - 迭代器Iterator
- .net是什么 都说.net是平台 平台是什么意思? java不是一种语言吗 怎么又拿来和.net比较?
- 一个被 -webkit-box 坑了的娃
- 关于SAP中的记账码的解释
- 欢迎使用CSDN-markdown编辑器
- uc/os-ii任务调度(一)