导航

poj 1003 (nyoj 156) Hangover

Posted on 2013-09-10 21:24  勇敢的炮灰  阅读(136)  评论(0)    收藏  举报

点击打开链接

题目大意 就是有很多卡片可以沿着桌边向外放,每次可以伸出1/2,1/3,1/4问最少多少卡片才能让一张完成的卡片悬空,题目输入卡片的宽度,输出卡片个数

#include<stdio.h>
int array[550];

int main()
{
	int i, j;
	double sum = 0;
	array[0] = 0;
	for(i = 1, j = 1; j < 521; i++)
	{
		sum += 1.0/(i + 1);
		int n = sum * 100;
		for(; j <= n; j++)
		{
			array[j] = i;
		}
	}
	double m;
	while(scanf("%lf", &m))
	{
		if(m == 0.00)
			break;
		else
		{
			int p = m * 100;
			printf("%d card(s)\n", array[p]);
		}
	}
	return 0;
}