C语言1/3+2/4+3/5+……+n/n+2大于2020求n的最小值
时间: 2023-03-22 08:03:39 浏览: 167
C语言求三个数当中的最小数
题目翻译:请用中文回答:C语言 1/3 2/4 3/5 …… n/n 2大于等于2020求n的最小值
这道题是要求出满足以下条件的最小的n的值:
- C语言表达式 1/3 + 2/4 + 3/5 + ... + n/n 的值大于等于2020。
可以先观察一下这个表达式,发现分子和分母都是从1开始逐渐增加的,而分母的增加速度比分子慢一些。因此,这个表达式的值会随着n的增加而增加,而增加的速度会越来越慢。也就是说,这个表达式的值是单调递增的。
因此,可以使用二分查找的方法来寻找最小的n,使得表达式的值大于等于2020。具体的做法如下:
- 首先,设定二分查找的上下界。下界可以设为1,因为当n为1时,表达式的值为1/1=1,已经大于等于2020了。上界可以设为一个很大的数,比如2020*2。因为当n为2020*2时,表达式的值约为10.017,肯定已经足够大了。
- 然后,每次将上下界的中间值mid代入表达式,计算表达式的值。如果表达式的值小于2020,则说明n的取值范围应该在[mid+1, 上界]之间;如果表达式的值大于等于2020,则说明n的取值范围应该在[下界, mid]之间。通过这样的方法不断缩小上下界,最终得到的下界即为满足条件的最小的n的值。
以下是具体的代码实现:
阅读全文