Быстрое вычисление 2^n - C (СИ)
Формулировка задачи:
Должно получать 32 а выходи 8 посмотрите в чём ошибка.
n=n/2; // возможно тут так как 5/2 получаеться 2.5 нужно округлить до трёх и продожить и не знаю как это сделать.
#include <stdio.h> #include <stdlib.h> #include <math.h> #include <locale.h> int main() { int a,n,r,i; n=5; a=2; r=1; for ( i = 0; i < n; i++) { if (n>1) { if (n%2 == 0) { r=r*a; } else { r=(r*a)*a; } { n=n/2; } } } printf("%d\n", r); }
Решение задачи: «Быстрое вычисление 2^n»
textual
Листинг программы
int Mpow(int a, int n) { if (n==0) return 1; else if (n==1) return a; else return Mpow(a, n/2) * Mpow(a, n - n/2); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д