Рубрики

Пятый корень числа

Учитывая число, выведите пол 5-го корня числа.

Примеры:

Input  : n = 32
Output : 2
2 raise to power 5 is 32

Input  : n = 250
Output : 3
Fifth square root of 250 is between 3 and 4
So floor value is 3.

Способ 1 (простой)
Простое решение — инициализировать результат как 0, продолжать увеличивать результат, пока результат 5 меньше или равен n. Окончательно вернуть результат — 1.

C ++

// Программа на C ++ для поиска пола 5-го корня
#include<bits/stdc++.h>

using namespace std;

  
// Возвращает пол 5-го корня из n

int floorRoot5(int n)

{

    // Базовые случаи

    if (n == 0 || n == 1)

        return n;

  

    // Инициализировать результат

    int res = 0;

  

    // Продолжаем увеличивать res, пока res ^ 5

    // меньше или равно n

    while (res*res*res*res*res <= n)

        res++;

  

    // Возвращаем пол 5-го корня

    return res-1;

}

  
// Драйвер программы

int main()

{

    int n = 250;

    cout << "Floor of 5'th root is "

         << floorRoot5(n);

    return 0;

}

Джава

// Java программа для поиска пола 5-го корня

  

class GFG {

      
// Возвращает пол 5-го корня из n

static int floorRoot5(int n)

{

      

    // Базовые случаи

    if (n == 0 || n == 1)

        return n;

  

    // Инициализировать результат

    int res = 0;

  

    // Продолжаем увеличивать res, пока res ^ 5

    // меньше или равно n

    while (res * res * res * res * res <= n)

        res++;

  

    // Возвращаем пол 5-го корня

    return res-1;

}

  

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

    public static void main(String []args)

    {

        int n = 250;

        System.out.println("Floor of 5'th root is "

                            + floorRoot5(n));

    }

}

  
// Этот код предоставлен Аншул Аггарвал.

python3

# Программа Python3, чтобы найти слово
№ 5-го корня

  
# Возвращает пол 5-го корня н

def floorRoot5(n): 

  

    # Базовые случаи

    if n == 0 and n == 1

        return

  

    # Инициализировать результат

    res = 0

  

    # Продолжайте увеличивать res, пока res ^ 5

    # меньше или равно n

    while res * res * res * res * res <= n: 

        res += 1

  

    # Вернуть пол 5-го корня

    return res-1

  
Код водителя

if __name__ == "__main__":

  

    n = 250

    print("Floor of 5'th root is"

                    floorRoot5(n)) 

  
# Этот код предоставлен Rituraj Jain

C #

// C # программа для поиска пола 5-го корня

using System;

  

class GFG {

      
// Возвращает пол 5-го корня из n

static int floorRoot5(int n)

{

      

    // Базовые случаи

    if (n == 0 || n == 1)

        return n;

  

    // Инициализировать результат

    int res = 0;

  

    // Продолжаем увеличивать res, пока res ^ 5

    // меньше или равно n

    while (res * res * res * res * res <= n)

        res++;

  

    // Возвращаем пол 5-го корня

    return res-1;

}

  

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

    public static void Main()

    {

        int n = 250;

        Console.Write("Floor of 5'th root is " 

                       + floorRoot5(n));

    }

}

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

PHP

<?php
// PHP программа для поиска
// пол 5-го корня

  
// Возвращает этаж
// 5-й корень из n

function floorRoot5($n)

{

      

    // Базовые случаи

    if ($n == 0 || $n == 1)

        return $n;

  

    // Инициализировать результат

    $res = 0;

  

    // Продолжаем увеличивать res, пока

    // res ^ 5 меньше или

    // равно n

    while ($res * $res * $res

           $res * $res <= $n)

        $res++;

  

    // Возвращаем этаж

    // 5-го корня

    return $res - 1;

}

  

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

    $n = 250;

    echo "Floor of 5'th root is "

                , floorRoot5($n);

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

Выход:

Floor of 5'th root is 3

Временная сложность вышеуказанного решения составляет O (n 1/5 ) . Мы можем сделать лучше. Смотрите ниже решение.

Метод 2 (бинарный поиск)
Идея состоит в том, чтобы сделать бинарный поиск . Мы начинаем с n / 2, и если его 5-я степень больше n, мы повторяем интервал от n / 2 + 1 до n. Иначе, если мощность меньше, мы повторяем в интервале от 0 до n / 2-1

C ++

// Программа на C ++ для поиска пола 5-го корня
#include<bits/stdc++.h>

using namespace std;

  
// Возвращает пол 5-го корня из n

int floorRoot5(int n)

{

    // Базовые случаи

    if (n == 0 || n == 1)

       return n;

  

    // Делаем бинарный поиск для пола 5-го квадратного корня

    int low = 1, high = n, ans = 0;

    while (low <= high)

    {

        // Находим среднюю точку и ее мощность 5

        int mid = (low + high) / 2;

        long int mid5 = mid*mid*mid*mid*mid;

  

        // Если mid - требуемый корень

        if (mid5 == n)

            return mid;

  

        // Поскольку нам нужен пол, мы обновляем ответ, когда

        // mid5 меньше n и перемещается ближе к

        // 5-й корень

        if (mid5 < n)

        {

            low = mid + 1;

            ans = mid;

        }

        else // Если середина ^ 5 больше n

            high = mid - 1;

    }

    return ans;

}

  
// Драйвер программы

int main()

{

    int n = 250;

    cout << "Floor of 5'th root is "

         << floorRoot5(n);

    return 0;

}

Джава

// Java-программа для поиска
// пол 5-го корня

  

class GFG {

      

    // Возвращает пол 5-го

    // корень n

    static int floorRoot5(int n)

    {

          

        // Базовые случаи

        if (n == 0 || n == 1)

        return n;

      

        // Двоичный поиск

        // пол 5-го квадратного корня

        int low = 1, high = n, ans = 0;

        while (low <= high)

        {

              

            // Найти среднюю точку

            // и его мощность 5

            int mid = (low + high) / 2;

            long mid5 = mid * mid * mid * 

                            mid * mid;

      

            // Если mid - требуемый корень

            if (mid5 == n)

                return mid;

      

            // Так как нам нужен пол,

            // мы обновляем ответ когда

            // mid5 меньше n,

            // и приближаемся к

            // 5-й корень

            if (mid5 < n)

            {

                low = mid + 1;

                ans = mid;

            }

              

            // Если середина ^ 5 больше

            // чем п

            else

                high = mid - 1;

        }

        return ans;

    }

      

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

    public static void main(String []args)

    {

        int n = 250;

        System.out.println("Floor of 5'th root is "

                                     floorRoot5(n));

    }

}

  
// Этот код предоставлен Аншул Аггарвал.

python3

# Программа Python3, чтобы найти слово
№ 5-го корня

  
# Возвращает пол 5-го корня н

def floorRoot5(n): 

  

    # Базовые случаи

    if n == 0 or n == 1

        return

  

    # Сделать бинарный поиск для пола

    # 5-й квадратный корень

    low, high, ans = 1, n, 0

    while low <= high: 

      

        # Найти среднюю точку и ее мощность 5

        mid = (low + high) // 2

        mid5 = mid * mid * mid * mid * mid 

  

        # Если середина - обязательный корень

        if mid5 == n: 

            return mid 

  

        # Так как нам нужен пол, мы обновляем ответ

        # когда mid5 меньше n и двигается

        # ближе к 5-му корню

        if mid5 < n: 

          

            low = mid + 1

            ans = mid 

          

        else: # Если середина ^ 5 больше n

            high = mid - 1

      

    return ans 

  
Код водителя

if __name__ == "__main__":

  

    n = 250

    print("Floor of 5'th root is", floorRoot5(n)) 

  
# Этот код предоставлен Rituraj Jain

C #

// AC # программа для поиска
// пол 5-го корня

using System;

  

class GFG {

      

    // Возвращает пол 5-го

    // корень n

    static int floorRoot5(int n)

    {

          

        // Базовые случаи

        if (n == 0 || n == 1)

        return n;

      

        // Двоичный поиск

        // пол 5-го квадратного корня

        int low = 1, high = n, ans = 0;

        while (low <= high)

        {

              

            // Найти среднюю точку

            // и его мощность 5

            int mid = (low + high) / 2;

            long mid5 = mid * mid * mid * 

                            mid * mid;

      

            // Если mid - требуемый корень

            if (mid5 == n)

                return mid;

      

            // Так как нам нужен пол,

            // мы обновляем ответ когда

            // mid5 меньше n,

            // и приближаемся к

            // 5-й корень

            if (mid5 < n)

            {

                low = mid + 1;

                ans = mid;

            }

              

            // Если середина ^ 5 больше

            // чем п

            else

                high = mid - 1;

        }

        return ans;

    }

      

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

    public static void Main(String []args)

    {

        int n = 250;

        Console.WriteLine("Floor of 5'th root is "

                                     floorRoot5(n));

    }

}

  
// Этот код предоставлен Аншул Аггарвал.

PHP

<?php
// PHP-программа для поиска пола 5-го корня

  
// Возвращает пол 5-го корня из n

function floorRoot5($n)

{

    // Базовые случаи

    if ($n == 0 || $n == 1)

    return $n;

  

    // Делаем бинарный поиск для пола 5-го квадратного корня

    $low = 1;

    $high = $n;

    $ans = 0;

    while ($low <= $high)

    {

        // Находим среднюю точку и ее мощность 5

        $mid = (int)(($low + $high) / 2);

        $mid5 = $mid*$mid*$mid*$mid*$mid;

  

        // Если mid - требуемый корень

        if ($mid5 == $n)

            return $mid;

  

        // Поскольку нам нужен пол, мы обновляем ответ, когда

        // mid5 меньше n и перемещается ближе к

        // 5-й корень

        if ($mid5 < $n)

        {

            $low = $mid + 1;

            $ans = $mid;

        }

        else // Если середина ^ 5 больше n

            $high = $mid - 1;

    }

    return $ans;

}

  

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

    $n = 250;

    echo "Floor of 5'th root is ".floorRoot5($n);

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


Выход:

Floor of 5'th root is 3

Временная сложность вышеуказанного решения составляет O (Log n)

Мы также можем использовать метод Ньютона-Рафсона, чтобы найти точный корень. Смотрите это для реализации.

Источник: http://qa.geeksforgeeks.org/7487/program-calculate-fifth-without-using-matmatics-operators

Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по обсуждаемой теме

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

Пятый корень числа

0.00 (0%) 0 votes