1003:Hangover

来源:互联网 发布:纪录片推荐 知乎 编辑:程序博客网 时间:2024/06/05 16:17

题目链接: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;}

0 0
原创粉丝点击