Code分享

2014年5月20日 由 Creater 留言 »

1299

#include <stdio.h>
#include <stdlib.h>

int BSearchUpperBound(int array[], int low, int high, int target)
{
    if(low > high || target >= array[high]) return -1;

    int mid = (low + high) / 2;
    while (high > low)
    {
        if (array[mid] > target)
            high = mid;
        else
            low = mid + 1;

        mid = (low + high) / 2;
    }

    return mid;
}


int main()
{
    int n,m;
    int a[100];
    scanf("%d %d",&n,&m);
    for(int i = 0; i <n; ++i)
        scanf("%d",&a[i]);
    printf("%d\n",a[BSearchUpperBound(a,0, n-1,m)]);
    return 0;

}

1298

#include <stdio.h>
#include <stdlib.h>
#define min(a,b) ((a) >(b)?(b):(a))
int coin[]= {2,3,5};
int fun(int n)
{
    if(n == 1)
        return 1;
    else if(n==3)
        return 1;
    else if(n==5)
        return 1;
    else
    {
        int m = 0xffff;
        for(int i = 0; i < 3; i++)
        {
            if(n >= coin[i])
                m = min(m,fun(n-coin[i]) + 1);
        }
        return m;
    }
}
广告位

发表评论

你必须 登陆 方可发表评论.