Язык Си в примерах/Степень числа: различия между версиями

Содержимое удалено Содержимое добавлено
Нет описания правки
оформление
Строка 7:
Вот программа, которая основана на этой формуле:
 
<big><source lang="c">
/*
Степень числа: простая рекурсия
Строка 27:
}
}
</source></big>
Приведёный выше пример не будет работать для отрицательных показателей степени (см. третью строку функции "power").
Правильнее было бы так:
<big><source lang="c">
/*
Степень числа: простая рекурсия
Строка 50:
}
}
</source></big>
 
Но есть более «умная» рекурсивная функция:
Строка 66:
первой рекурсией вычисляется за 10000 шагов, а второй -- за 19 шагов.
 
<big><source lang="c">
/*
Программа 2: степень числа -- оптимизированная рекурсия.
Строка 78:
return power(x * x, n / 2);
}
</source></big>
 
<big><source lang="c">
/*
Программа 3: cтепень числа -- оптимальный алгоритм без рекурсии.
Строка 99:
return a;
}
</source></big>
* Напишите программу, вычисляющую double в степени double.
* Сколько шагов требуется для вычисления <math>a^{30}\,\!</math> вторым методом?