Рубрики

Напишите свою собственную мощность без использования операторов умножения (*) и деления (/)

Метод 1 (Использование вложенных циклов)

Мы можем рассчитать мощность с помощью повторного сложения.

Например для расчета 5 ^ 6.
1) Первые 5 раз добавить 5, мы получим 25. (5 ^ 2)
2) Затем 5 раз добавить 25, мы получим 125. (5 ^ 3)
3) Затем 5 раз прибавим 125, получим 625 (5 ^ 4)
4) Затем 5 раз добавить 625, мы получим 3125 (5 ^ 5)
5) Затем 5 раз добавить 3125, мы получим 15625 (5 ^ 6)

C ++

// C ++ код для степенной функции
#include <bits/stdc++.h>

using namespace std;

  
/ * Работает только если a> = 0 и b> = 0 * /

int pow(int a, int b) 

    if (b == 0) 

        return 1; 

    int answer = a; 

    int increment = a; 

    int i, j; 

    for(i = 1; i < b; i++) 

    

        for(j = 1; j < a; j++) 

        

            answer += increment; 

        

        increment = answer; 

    

    return answer; 

  
// Код драйвера

int main() 

    cout << pow(5, 3); 

    return 0; 

  
// Этот код добавлен
// ратбхупендра

С

#include<stdio.h>
/ * Работает только если a> = 0 и b> = 0 * /

int pow(int a, int b)

{

  // базовый случай: все, что возведено в степень 0, равно 1

  if (b == 0)

    return 1;

  int answer = a;

  int increment = a;

  int i, j;

  for(i = 1; i < b; i++)

  {

     for(j = 1; j < a; j++)

     {

        answer += increment;

     }

     increment = answer;

  }

  return answer;

}

  
/ * программа драйвера для проверки вышеуказанной функции * /

int main()

{

  printf("\n %d", pow(5, 3));

  getchar();

  return 0;

}

Джава

import java.io.*;

  

class GFG {

      

    / * Работает только если a> = 0 и b> = 0 * /

    static int pow(int a, int b)

    {

        if (b == 0)

            return 1;

              

        int answer = a;

        int increment = a;

        int i, j;

          

        for (i = 1; i < b; i++) {

            for (j = 1; j < a; j++) {

                answer += increment;

            }

            increment = answer;

        }

          

        return answer;

    }

  

    // программа драйвера для проверки вышеуказанной функции

    public static void main(String[] args)

    {

        System.out.println(pow(5, 3));

    }

}

  
// Этот код предоставлен vt_m.

питон

# Python 3 код для власти
# функция

  
# Работает только если a> = 0 и b> = 0

def pow(a,b):

    if(b==0):

        return 1

          

    answer=a

    increment=a

      

    for i in range(1,b):

        for j in range (1,a):

            answer+=increment

        increment=answer

    return answer

  
# код водителя

print(pow(5,3))

  
# этот код добавлен
# by Sam007

C #

using System;

  

class GFG

{

    / * Работает только если a> = 0 и b> = 0 * /

    static int pow(int a, int b)

    {

        if (b == 0)

            return 1;

              

        int answer = a;

        int increment = a;

        int i, j;

          

        for (i = 1; i < b; i++) {

            for (j = 1; j < a; j++) {

                answer += increment;

            }

            increment = answer;

        }

          

        return answer;

    }

  

    // программа для тестирования драйвера

    // вышеуказанная функция

    public static void Main()

    {

        Console.Write(pow(5, 3));

    }

}

  
// Этот код предоставлен Sam007

PHP

<?php

  
// Работает только если a> = 0
// и b> = 0

function poww($a, $b)

{

    if ($b == 0)

        return 1;

    $answer = $a;

    $increment = $a;

    $i;

    $j;

    for($i = 1; $i < $b; $i++)

    {

        for($j = 1; $j < $a; $j++)

        {

            $answer += $increment;

        }

        $increment = $answer;

    }

    return $answer;

}

  

    // Код драйвера

    echo( poww(5, 3));

   
// Этот код предоставлен нитин митталь.
?>


Выход :

125

Метод 2 (Использование рекурсии)
Рекурсивно добавить, чтобы получить умножение двух чисел. И рекурсивно умножить , чтобы получить прибавку к мощности б.

C ++

#include<bits/stdc++.h>

using namespace std;

  
/ * Рекурсивная функция для получения x * y * /

int multiply(int x, int y)

{

    if(y)

        return (x + multiply(x, y - 1));

    else

        return 0;

}

  
/ * Рекурсивная функция для получения ^ b
Работает только если a> = 0 и b> = 0 * /

int pow(int a, int b)

{

    if(b)

        return multiply(a, pow(a, b - 1));

    else

        return 1;

  
// Код драйвера

int main()

{

    cout << pow(5, 3);

    getchar();

    return 0;

}

  
// Этот код добавлен
// Аканкша Рай

С

#include<stdio.h>
/ * Рекурсивная функция для получения ^ b

  Работает только если a> = 0 и b> = 0 * /

int pow(int a, int b)

{

   if(b)

     return multiply(a, pow(a, b-1));

   else

    return 1;

}    

  
/ * Рекурсивная функция для получения x * y * /

int multiply(int x, int y)

{

   if(y)

     return (x + multiply(x, y-1));

   else

     return 0;

}

  
/ * программа драйвера для проверки вышеуказанных функций * /

int main()

{

  printf("\n %d", pow(5, 3));

  getchar();

  return 0;

}

Джава

import java.io.*;

  

class GFG {

      

    / * Рекурсивная функция для получения ^ b

    Работает только если a> = 0 и b> = 0 * /

    static int pow(int a, int b)

    {

          

        if (b > 0)

            return multiply(a, pow(a, b - 1));

        else

            return 1;

    }

  

    / * Рекурсивная функция для получения x * y * /

    static int multiply(int x, int y)

    {

          

        if (y > 0)

            return (x + multiply(x, y - 1));

        else

            return 0;

    }

  

    / * программа драйвера для проверки вышеуказанных функций * /

    public static void main(String[] args)

    {

        System.out.println(pow(5, 3));

    }

}

  
// Этот код предоставлен vt_m.

питон

def pow(a,b):

      

    if(b):

        return multiply(a, pow(a, b-1));

    else:

        return 1;

       
# Рекурсивная функция для получения x * y *

def multiply(x, y):

      

    if (y):

        return (x + multiply(x, y-1));

    else:

        return 0;

  
# программа драйвера для проверки вышеуказанных функций *

print(pow(5, 3));

  

  
# Этот код добавлен
# by Sam007

C #

using System;

  

class GFG

{

    / * Рекурсивная функция для получения ^ b

    Работает только если a> = 0 и b> = 0 * /

    static int pow(int a, int b)

    {

          

        if (b > 0)

            return multiply(a, pow(a, b - 1));

        else

            return 1;

    }

  

    / * Рекурсивная функция для получения x * y * /

    static int multiply(int x, int y)

    {

          

        if (y > 0)

            return (x + multiply(x, y - 1));

        else

            return 0;

    }

  

    / * программа драйвера для проверки вышеуказанных функций * /

    public static void Main()

    {

        Console.Write(pow(5, 3));

    }

}

  
// Этот код предоставлен Sam007

PHP

<?php

  
/ * Рекурсивная функция для получения ^ b

   Работает только если a> = 0 и b> = 0 * /

function p_ow( $a, $b)

{

    if($b)

        return multiply($a

          p_ow($a, $b - 1));

    else

        return 1;

  
/ * Рекурсивная функция

   чтобы получить х * у * /

function multiply($x, $y)

{

    if($y)

        return ($x + multiply($x, $y - 1));

    else

        return 0;

}

  
// Код драйвера

echo pow(5, 3);

  
// Этот код предоставлен anuj_67.
?>


Выход :

125

Пожалуйста, пишите комментарии, если вы обнаружите какую-либо ошибку в приведенном выше коде / алгоритме, или найдете другие способы решения той же проблемы

Рекомендуемые посты:

Напишите свою собственную мощность без использования операторов умножения (*) и деления (/)

0.00 (0%) 0 votes