Рубрики

Номера Лукаса

Числа Лукаса похожи на числа Фибоначчи. Числа Лукаса также определяются как сумма двух непосредственно предшествующих слагаемых. Но здесь первые два слагаемых равны 2 и 1, тогда как в числах Фибоначчи первые два слагаемых равны 0 и 1 соответственно.

Математически числа Лукаса могут быть определены как:

Числа Люка находятся в следующей целочисленной последовательности:

2, 1, 3, 4, 7, 11, 18, 29, 47, 76, 123 ………… ..

Напишите функцию int lucas (int n) n в качестве аргумента и верните n-ное число Лукаса.

Примеры :

Input : 3
Output : 4

Input : 7
Output : 29

Метод 1 (рекурсивное решение)
Ниже приведена рекурсивная реализация, основанная на простой рекурсивной формуле.

C / C ++

// Рекурсивная программа C / C ++
// найти номер Лукаса
#include <stdio.h>

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

int lucas(int n)

{

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

    if (n == 0)

        return 2;

    if (n == 1)

        return 1;

  

    // рекуррентное отношение

    return lucas(n - 1) + 

           lucas(n - 2);

}

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

int main()

{

    int n = 9;

    printf("%d", lucas(n));

    return 0;

}

Джава

// Рекурсивная Java-программа для
// найти номер Лукаса

  

class GFG 

{

  

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

    public static int lucas(int n)

    {

  

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

        if (n == 0)

            return 2;

        if (n == 1)

            return 1;

  

        // рекуррентное отношение

        return lucas(n - 1) + 

               lucas(n - 2);

    }

  

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

    public static void main(String args[])

    {

        int n = 9;

        System.out.println(lucas(n));

    }

}
// Этот код добавлен
// Никита Тивари.

python3

# Рекурсивная программа Python 3
# найти номер Лукаса

  
# рекурсивная функция

def lucas(n) :

      

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

    if (n == 0) :

        return 2

    if (n == 1) :

        return 1

  

    # рекуррентное отношение

    return lucas(n - 1) + lucas(n - 2

  

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

n = 9

print(lucas(n))

  
# Этот код предоставлен Никитой Тивари.

C #

// Рекурсивная программа на C # для
// найти номер Лукаса

using System;

  

class GFG {

  

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

    public static int lucas(int n)

    {

  

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

        if (n == 0)

            return 2;

        if (n == 1)

            return 1;

  

        // рекуррентное отношение

        return lucas(n - 1) + lucas(n - 2);

    }

  

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

    public static void Main()

    {

  

        int n = 9;

  

        Console.WriteLine(lucas(n));

    }

}

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

PHP

<?php
// Рекурсивная PHP-программа для
// найти номер Лукаса

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

function lucas($n)

{

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

if ($n == 0) 

    return 2;

if ($n == 1) 

    return 1;

  
// рекуррентное отношение

return lucas($n - 1) + 

       lucas($n - 2); 

}

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

$n = 9;

echo lucas($n);

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

Выход :

76

Метод 2 (Итеративное решение)
Временная сложность вышеуказанной реализации является экспоненциальной. Мы можем оптимизировать его для работы за O (n) время, используя итерацию.

C / C ++

// Итеративная программа C / C ++
// найти номер Лукаса
#include <stdio.h>

  
// Итерационная функция

int lucas(int n)

{

    // объявляем базовые значения

    // для позиций 0 и 1

    int a = 2, b = 1, c, i;

  

    if (n == 0)

        return a;

  

    // генерируем число

    for (i = 2; i <= n; i++) 

    {

        c = a + b;

        a = b;

        b = c;

    }

    return b;

}

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

int main()

{

    int n = 9;

    printf("%d", lucas(n));

    return 0;

}

Джава

// Итеративная Java-программа для
// найти номер Лукаса

class GFG 

{

    // Итерационная функция

    static int lucas(int n)

    {

        // объявляем базовые значения

        // для позиций 0 и 1

        int a = 2, b = 1, c, i;

  

        if (n == 0)

            return a;

  

        // генерируем число

        for (i = 2; i <= n; i++) 

        {

            c = a + b;

            a = b;

            b = c;

        }

        return b;

    }

  

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

    public static void main(String args[])

    {

        int n = 9;

        System.out.println(lucas(n));

    }

}

  
// Этот код добавлен
// Никита Тивари.

python3

# Итеративная программа Python 3
# найти номер Лукаса

  
# Итерационная функция

def lucas(n) :

  

    # объявление базовых значений

    # для позиций 0 и 1

    a = 2

    b = 1

      

    if (n == 0) :

        return a

   

    # генерирующий номер

    for i in range(2, n + 1) :

        c = a + b

        a = b

        b = c

      

    return b

      

   
Код водителя

n = 9

print(lucas(n))

  
# Этот код добавлен
# Никита Тивари.

C #

// Итеративная программа на C # для
// найти номер Лукаса

using System;

  

class GFG {

  

    // Итерационная функция

    static int lucas(int n)

    {

  

        // объявляем базовые значения

        // для позиций 0 и 1

        int a = 2, b = 1, c, i;

  

        if (n == 0)

            return a;

  

        // генерируем число

        for (i = 2; i <= n; i++) {

            c = a + b;

            a = b;

            b = c;

        }

  

        return b;

    }

  

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

    public static void Main()

    {

        int n = 9;

  

        Console.WriteLine(lucas(n));

    }

}

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

PHP

<?php
// Итеративная программа php
// найти номер Лукаса

  

function lucas($n)

{

    // объявляем базовые значения

    // для позиций 0 и 1

    $a = 2; $b = 1; $c; $i;

  

    if ($n == 0)

        return $a;

  

    // генерируем число

    for ($i = 2; $i <= $n; $i++) 

    {

        $c = $a + $b;

        $a = $b;

        $b = $c;

    }

    return $b;

}

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

$n = 9;

echo lucas($n);

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

Выход :

76

Ссылки:
https://en.wikipedia.org/wiki/Lucas_number

Эта статья предоставлена Суровым Агарвалом . Если вы как GeeksforGeeks и хотели бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи contribute@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

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

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

Номера Лукаса

0.00 (0%) 0 votes