我在理解为什么我用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/