我在理解为什么我用C++编写的一个极其简单的程序不断循环的过程中遇到了一些困难。我将首先描述手头的问题,只是要检查我的解决方案是否不正确,然后再编写代码:

足球运动员的投篮效率是
进球是他职业生涯所有进球的总得分。它是介于0和100之间的有理数,
四舍五入到小数点后一位。举例来说,
射门得分7次,进球3次
效率42.9。
考虑到球员的投篮效率,我们想知道
是达到目标所需的最低射门次数
数字(必须大于0)。

我想到的是,如果p是给定的百分比,那么为了获得最少的击球次数n,必须满足np
我已经编写了以下程序:

int main(){
    float efficiency;
    cin >> efficiency;
    int i = 1;
    float tries = i*efficiency;

    while(tries > i){
        i++;
        tries = i*efficiency;
    }

    cout << i << endl;
    return 0;
}

该程序永远不会终止,因为它会不断在内部循环,有关任何错误的建议将不胜感激。

最佳答案

您将i递增后就乘以效率。这意味着效率将比i快得多,因为当i增加1时,效率将增加(i + 1)倍,最终比i大得多。

关于c++ - 获得所需的最少射击次数,以使目标超过射击次数是给定的百分比,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51788424/

10-13 08:23