/*
本函数计算问题:
N人去商店买汽水,正好碰上商店优惠,x个空瓶可以换一瓶新汽水。
问:最少花多少瓶的钱可以让所有人都喝到汽水?
x个空瓶可以换一瓶,则能使自己没有空瓶的最小购买瓶数为:
x*(x-1)
对应可以喝到的瓶数:
x*(x-1) + (x-1) +1 = x^2
最终最小购买瓶数为:
MIN=N*[x*(x-1)/x^2]=N*(x-1)/x
Jeff Wu
Shenzhen
2008.04.18
*/
#include <stdio.h>
int Drink(int N, int x)
{
int tail,num;
if(N<1)
{
printf("Total too small!/n");
return 0;
}
else if(N>10000)
{
printf("Total too large!");
return 0;
}
if(x<2 || x>100)
{
printf("Must be a joke!");
return 0;
}
tail = N % x;
num = N / x;
/*
if(x == 1)
{
num = N/2 + N%2;
return num;
}
*/
if(tail)
num += 1;
return num;
}
|
一个智力题
最新推荐文章于 2021-08-19 11:40:15 发布