В чем ошибка? должно число подводиться в степень за минимальное кол умножения не используя возведение в степень - C (СИ)

Узнай цену своей работы

Формулировка задачи:

должно число подводиться в степень за минимальное кол умножения не используя возведение в степень. Помогите, что не так? И почему? Спасибо за внимание!!!
#include 
#include 
#include 
int main()
{
    int k, m, n;
    printf("n");
    scanf("%d", &n);
    printf("k");
    scanf("%d", &k);
    m = n;
    if ((k / 2) != 0)
    {
        k = k - 1;
    }
    for (i = 0; i < k / 2; i++)
    {
        m *= m;
    }
    else
    {
        for (i = 0; i < k / 2; i++)
        {
            m *= m;
        }
        getch();
    }
}

Решение задачи: «В чем ошибка? должно число подводиться в степень за минимальное кол умножения не используя возведение в степень»

textual
Листинг программы
int powB(int x, int n)
{
    if (n == 0) return 1;
    if (n == 1) return x;
    if (n % 2 == 0) return powB(x * x, n / 2);
    return x * powB(x, n - 1);
}

Объяснение кода листинга программы

В данном коде реализована функция powB, которая выполняет возведение числа x в степень n. Вот список шагов, которые выполняются в этой функции:

  1. Если n равно 0, то функция возвращает 1. Это базовый случай, когда число x в степень 0 равно 1.
  2. Если n равно 1, то функция возвращает x. Это базовый случай, когда число x в степень 1 равно самому числу x.
  3. Если n делится на 2 без остатка (т.е. n % 2 == 0), то функция рекурсивно вызывает саму себя с аргументами x * x и (n / 2). Это делается для того, чтобы уменьшить степень n в два раза, так как n дажечетное число.
  4. Если ни одно из вышеперечисленных условий не выполняется, то функция возвращает x умноженное на результат рекурсивного вызова функции powB с аргументами x и (n - 1). Это делается для того, чтобы уменьшить степень n на 1 и продолжать вычисления. Таким образом, данный код реализует алгоритм возведения в степень, который выполняет требуемые вычисления за минимальное количество операций, избегая использования встроенной функции pow или powf.

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


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

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

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