Быстрое вычисление 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);
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.067 из 5
Похожие ответы