poj2388---求奇数个数字的最中间的数

#include <stdio.h>
#include <stdlib.h>
int cmp(const void *a,const void *b)
{
    return (*(int *)a-*(int *)b);
}

int main()
{
    int n,arr[10001],i;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&arr[i]);
    }
    qsort(arr,n,sizeof(arr[0]),cmp);
    printf("%d",arr[n / 2]);
    return 0;
}

find the median amount of milk given such that at least half the cows give the same amount of milk or more and at least half give the same or less.

一列数排序过后(奇数个),最中间的数一定是大于或等于左边的数,最中间的数一定是小于或者等于右边的数,而且两边各一半

时间: 2024-10-09 08:17:36

poj2388---求奇数个数字的最中间的数的相关文章

spoj10606 数位dp (求出现的数字,所有偶数出现奇数次,所有奇数出现偶数次)

http://www.spoj.com/problems/BALNUM/ SPOJ Problem Set (classical) 10606. Balanced Numbers Problem code: BALNUM Balanced numbers have been used by mathematicians for centuries. A positive integer is considered a balanced number if: 1)      Every even 

数位dp(求1-n中数字1出现的个数)

题意:求1-n的n个数字中1出现的个数. 解法:数位dp,dp[pre][now][equa] 记录着第pre位为now,equa表示前边是否有降数字(即后边可不可以随意取,true为没降,true为已降):常规的记忆化搜索 代码: /****************************************************** * author:xiefubao *******************************************************/ #p

求奇数的乘积

Problem Description 给你n个整数,求他们中所有奇数的乘积. Input 输入数据包含多个测试实例,每个测试实例占一行,每行的第一个数为n,表示本组数据一共有n个,接着是n个整数,你可以假设每组数据必定至少存在一个奇数. Output 输出每组数中的所有奇数的乘积,对于测试实例,输出一行. Sample Input 3 1 2 3 4 2 3 4 5 Sample Output 3 15 code: #include<stdio.h>int main(){      int

java循环练习:用户输入一个10以内的数字,通过运算求出该数字的阶乘

package practiceGO; import java.util.Scanner; /*  * 4.用户输入一个10以内的数字,通过运算求出该数字的阶乘  */ public class Cto { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入一个10以内的数字,由系统计算阶乘"); int num = sc.nextIn

不用遍历 递归算法 求数组中数字的最大值

#include "stdio.h"int ax[] ={1000,5,6,8,9,800,5,200,3,6,5,8,9};int paixu (int n, int ret){    if (n==0) return ret>ax[0]?ret:ax[0];    int ret1= ret>ax[n]? ret:ax[n];    return paixu(n-1,ret1);}int main(int argc, char* argv[]){    int numb

&quot;求n个数字中的最大值&quot;的 多种方案,及对多种方案优缺点分析。

如果n是3,输入3个数字,求3个数的最大数: 第一种方案: 利用条件运算符来求解,条件运算符的格式是x?y:z x是boolean类型表达式,如果x=true, 则整个条件运算符的结果是y的值,否则是z的值.(((a>b)?a:b))就是得到a,b中的最大值. int a =1,b=2,c=3; int h=(((a>b)?a:b)<c)?c:(((a>b)?a:b)); System.out.println("最大的数字是"+h); 第二种方案: int a=

求奇数的乘积 AC 杭电

求奇数的乘积 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 56573    Accepted Submission(s): 36490 Problem Description 给你n个整数,求他们中所有奇数的乘积. Input 输入数据包含多个测试实例,每个测试实例占一行,每行的第一个数为n,表示本组数据一共有n个,接着是n个整数,

利用递归求两个数字的最大公约数。

<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> //利用递归求两个数字的最大公约数. //公因数,如果一个整数同时是几个整数的约数,则这个整数为它们的"公约数" function getNum(a, b) { va

练习2:雨淋湿了一道题,9个数字只能看清楚4个,第一个肯定不是1 [X * (Y3 + Z)]^2 = 8MN9,求出各个数字

题目上的X代表的未知数,不一定是同一个数字. 其实这道题,直接一推敲答案就出来了,首先,积德尾数是9,说明 X*(Y3 + Z)的值尾数是3,3的因子只有1和3,所以X只有1和3候选,但是题目说第一个肯定不是1,那就是3了. 那么括号里面Y3+Z的值就必然尾数是1,而能和3相加尾数是1的只有8,所以Z就是8了.这样就还剩下Y的值了,平方等于8000+的数字,一想大概是在90左右, 这样子,括号里面(Y3+Z)的值大概就框定在30左右,肯定比30大,但绝对不超过35,由于之前已经判断出Z是8,所以