首页 > ACM题库 > HDU-杭电 > hdu 2107 Founding of HDU[解题报告]C++
2013
12-29

hdu 2107 Founding of HDU[解题报告]C++

Founding of HDU

问题描述 :

经过慎重的考虑,XHD,8600, LL,Linle以及RPG等ACM队员集体退役,甚至正在酝酿退学。
为什么?要考研?那也不用退学呀…
当然不是!真正的原因是他们想提前创业,想合伙成立一家公司,据说公司的名称都想好了,为了感谢多年的ACM集训队队长XHD,公司就叫海东集团(HaiDong Union),简称HDU.(对于这个公司名称,几个人私下里开玩笑说,外面的人看到HDU,可别以为是”胡捣集团”,呵呵)
公司成立了,谁来做老大呢?这对于合伙的公司可是一个难题。好在几位同学经过几年的ACM训练,思维非常活跃,马上想到推选AC战斗力最强的一位来做老总。
现在的问题就是,假设每人的AC战斗力是一个已知的整数,请编程输出最后选出的老总的AC战斗力。

输入:

输入包含多组测试数据,每组数据占2行,首先一行是一个整数n(n<100),表示创立公司的人数,然后一行是n个32位整数,表示n个人的AC战斗力,n为0的时候结束输入。

输出:

输入包含多组测试数据,每组数据占2行,首先一行是一个整数n(n<100),表示创立公司的人数,然后一行是n个32位整数,表示n个人的AC战斗力,n为0的时候结束输入。

样例输入:

3
1 2 3
0

样例输出:

3



谁将是HDU的老总呢?
欲知后事如何,且听下回分解――

2011-12-15 02:11:52

地址:http://acm.hdu.edu.cn/showproblem.php?pid=2107

题意:中文,找最大。

代码:

# include <stdio.h>


int main ()
{
    int n, a, max ;
    while (~scanf ("%d", &n))
    {
        if (n == 0) break ;
        scanf ("%d", &max) ;
        while (n-- -1)
        {
            scanf ("%d", &a) ;
            if (a > max) max = a ;
        }
        printf ("%d\n", max) ;
    }
    return 0 ;
}

解题转自:http://www.cnblogs.com/lzsz1212/archive/2012/01/06/2314618.html


  1. int half(int *array,int len,int key)
    {
    int l=0,r=len;
    while(l<r)
    {
    int m=(l+r)>>1;
    if(key>array )l=m+1;
    else if(key<array )r=m;
    else return m;
    }
    return -1;
    }
    这种就能避免一些Bug
    l,m,r
    左边是l,m;右边就是m+1,r;