题解 SP902 【HANGOVER - Hangover】

这道题前面已有10位dalaoAC了,可能因为这道题太水了,就没发题解,那我就做第一个发题解的蒟蒻 吧。

这题水到爆,当然,是在看懂题意的基础上。(我看了不下于五遍才看懂,可能是太蒟了 )设读入数据为a,那么这道题实际上是求 1 2 + 1 3 + 1 4 + 1 5 + . . . + 1 ( n + 1 ) < a \dfrac{1}{2} + \dfrac{1}{3} + \dfrac{1}{4} + \dfrac{1}{5} + ... + \dfrac{1}{(n+1)} < a 这个不等式中n的最小值是多少。所以代码就出炉了:

#include <bits/stdc++.h>  //万能头文件
using namespace std; 
int main ()
{
    double a;   //定义输入数据,浮点型的
    while (cin >> a){   //while循环读入
        if(a == 0) break;   //输入结束条件
        double sum = 0;   //求和变量
        int p = 0;    //输出数据
        for(int i = 2;; i++){
            sum += 1.0 / i;  //sum求和
            p++;
            if(sum >= a) {
                cout << p << " card(s)\n";
                break;
            }
        }
    }
    return 0;
} 
发布了4 篇原创文章 · 获赞 1 · 访问量 54

猜你喜欢

转载自blog.csdn.net/live_now/article/details/104996044