Написать функцию быстрого возведения в степень - C (СИ)
Формулировка задачи:
9.
Напишите функцию быстрого возведения в степень, которая пользовалась бы следующими свойствами: an=(an/2)2 при четном n, an=a*an-1 при нечетном n. Подумайте, сколько умножений выполнит эта функция для вычисления an?Решение задачи: «Написать функцию быстрого возведения в степень»
textual
Листинг программы
template <typename T> double Stepen(T a, int b);
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL, "rus");
float a;
int b;
printf("Введите число: ");
scanf("%f", &a);
printf("Введите степень: ");
scanf("%d", &b);
printf("Result: %.2f\n", Stepen(a, b));
return 0;
}
template <typename T> double Stepen(T a, int b);
{
int i, res = 1;
for (i = 1; i <= b; i++)
{
res = res * a;
}
return res;
}
Объяснение кода листинга программы
- Объявление функции быстрого возведения в степень
Stepen - Ввод аргументов функции:
aиb - Вывод результата работы функции с точностью до 2 знаков после запятой
- Код функции
Stepen - Инициализация переменных
iиres - Запуск цикла по всем значениям
iот 1 доb - Перемножение
resиa - Возврат результата