По условию задачи нужно вывести логарифм по основанию 2 от числа. Но в функции где-то бесконечный цикл. Помогите его найти.
#include <iostream>
using namespace std;
int log(int x) {
int k = 0;
do {
x/2;
k++;
}
while (x >= 2)
return k;
}
int main() {
int c, a, p;
cin >> c; //тут я ввожу 5, т.к. по заданию нужно найти 5 логарифмов
for (int i = 0; i<c; i++) {
cin >> a; //само число, от которого нужно найти логарифм
p = log(a);
cout << p << '\n';
}
}
do {
x/2;
k++;
}
x/2 думаю у тебя должна присваиваться) x = x/2;
do {
x/2;
k++;
}
while (x >= 2)
У вас в функции значение x не изменяется - результат деления не присваивается ничему...
Наверное, вы хотели написать x/=2 ? :)
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости