题目链接:http://poj.org/problem?id=1003
求1/2+1/3+....+1/n达到给定的值所需要的最少的项数。
#include <stdio.h>
#include <stdlib.h>
int main()
{
double length; //给定的长度
int base; //单张卡片长度的分母
int cards; //卡片的张数
double answer; //累积的总长度
//输入给定的长度,长度为0时退出
while(scanf("%lf", &length) == 1 && length != 0)
{
//因为第一项为1/2,所以base设为2;总长度小于给定的长度时循环继续;每次循环卡片和分母+1
for(cards = 0, answer = 0, base = 2; answer < length; base++, cards++)
answer += (double) 1/base; //求1/2+1/3+...+1/n的和
printf("%d card(s)\n", cards);
}
return 0;
}