Дано число а (1 < а ≤1,5). Среди чисел 1+1/2, 1+1/3, ... найти первое, меньшее а с++

Ответы

Ответ дал: Аноним
1

#include <iostream>

#include <cmath>

using namespace std;

signed main() {

   double one = 1.0;

   double a;

   cin >> a;

   int l = 2, r = 10000;

   while(l <= r){

       int m = (l+r)/2;

       if(one + one/m < a) r = m - 1;

       else l = m + 1;

   }

   cout << one + one/l;

}


Nollon: А какой смысл в r? Не совсем понял почему десяткой ограничиваешься, в условии вроде нету про это
Аноним: не 10, больше взял, а от r смысл в том, что это бинпоиск и тебе нужны границы, просто у тебя бесконечно убывающая прогрессия и чем-то ограничиваться все же приходится
Аноним: бинпоиск для того чтобы находить нужное значение за О(logN), а не за О(N)
Nollon: Ответ 20?
Аноним: ты понимаешь смысл программирования ?
Nollon: Я спорить не буду, так как не разбираюсь
Вас заинтересует