Рубрики

Последовательность жонглеров

Последовательность жонглера — это серия целых чисел, в которой первый член начинается с положительного целого числа a, а остальные члены генерируются непосредственно из предыдущего члена с использованием приведенного ниже отношения повторения:

Последовательность жонглера, начиная с номера 3:
5, 11, 36, 6, 2, 1

Последовательность жонглера, начиная с номера 9:
9, 27, 140, 11, 36, 6, 2, 1

Учитывая число n, мы должны напечатать последовательность Жонглера для этого числа в качестве первого члена последовательности.
Примеры:

Input: 9
Output: 9, 27, 140, 11, 36, 6, 2, 1
We start with 9 and use above formula to get
next terms.

Input: 6
Output: 6, 2, 1

С

// C реализация Juggler Sequence
#include<stdio.h>
#include<math.h>

  
// Эта функция печатает последовательность жонглера

void printJuggler(int n)

{

    int a = n;

  

    // выводим первый термин

    printf("%d ", a);

  

    // вычисляем сроки до последнего не 1

    while (a != 1)

    {

        int b = 0;

  

        // Проверка, является ли предыдущий термин четным или нечетным

        if (a%2 == 0)

  

            // рассчитать следующий семестр

            b  = floor(sqrt(a));

  

        else

  

            // для нечетного предыдущего срока вычисления

            // следующий семестр

            b = floor(sqrt(a)*sqrt(a)*sqrt(a));

  

        printf("%d ", b);

        a = b;

    }

}

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

int main()

{

    printJuggler(3);

    printf("\n");

    printJuggler(9);

    return 0;

}

Джава

// Java-реализация последовательности Juggler

import java.io.*;

import java.math.*;

  

class GFG {

       

    // Эта функция печатает последовательность жонглера

    static void printJuggler(int n)

    {

        int a = n;

    

       // выводим первый термин

       System.out.print(a+" ");

    

      // вычисляем сроки до последнего не 1

       while (a != 1)

       {

          int b = 0;

     

          // Проверка, является ли предыдущий термин четным или нечетным

          if (a%2 == 0)

     

             // рассчитать следующий семестр

                b  = (int)Math.floor(Math.sqrt(a));

    

          else

    

            // для нечетного предыдущего срока вычисления

            // следующий семестр

                b =(int) Math.floor(Math.sqrt(a) *

                               Math.sqrt(a) * Math.sqrt(a));

    

          System.out.print( b+" ");

          a = b;

        }

    }

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

public static void main (String[] args) {

    printJuggler(3);

    System.out.println();

    printJuggler(9);

    }

}

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

питон

import math

  
# Эта функция печатает последовательность жонглера

def printJuggler(n) :

    a = n

      

    # напечатать первый термин

    print a,

      

    # рассчитать условия до последнего срока не 1

    while (a != 1) :

        b = 0

          

        # Проверьте, является ли предыдущий термин четным или нечетным

        if (a%2 == 0) :

              

            # рассчитать следующий семестр

            = (int)(math.floor(math.sqrt(a)))

   

        else :

            # для нечетного предыдущего срока вычисления

            # следующий семестр

            b = (int) (math.floor(math.sqrt(a)*math.sqrt(a)*

                                         math.sqrt(a)))

   

        print b,

        a = b

  

printJuggler(3)

print

printJuggler(9)

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

C #

// C # реализация последовательности жонглера

using System;

  

class GFG {

      

    // Эта функция печатает последовательность жонглера

    static void printJuggler(int n)

    {

        int a = n;

  

    // выводим первый термин

    Console.Write(a+" ");

  

    // вычисляем сроки до последнего не 1

    while (a != 1)

    {

        int b = 0;

      

        // Проверка, является ли предыдущий термин четным или нечетным

        if (a%2 == 0)

      

            // рассчитать следующий семестр

                b = (int)Math.Floor(Math.Sqrt(a));

  

        else

  

            // для нечетного предыдущего срока вычисления

            // следующий семестр

                b =(int) Math.Floor(Math.Sqrt(a) *

                     Math.Sqrt(a) * Math.Sqrt(a));

  

        Console.Write( b+" ");

        a = b;

        }

    }

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

public static void Main () {

    printJuggler(3);

    Console.WriteLine();

    printJuggler(9);

    }

}

  
// Этот код предоставлен Нитином Митталом

PHP

<?php
// PHP реализация
// последовательность жонглеров

  
// функция печатает
// последовательность жонглеров

function printJuggler($n)

{

    $a = $n;

  

    // выводим первый термин

    echo($a . " ");

  

    // рассчитать сроки до

    // последний член не 1

    while ($a != 1)

    {

        $b = 0;

  

        // Проверка предыдущего

        // термин четный или нечетный

        if ($a % 2 == 0)

  

            // рассчитать следующий семестр

            $b = floor(sqrt($a));

  

        else

  

            // для нечетного предыдущего срока

            // рассчитать следующий семестр

            $b = floor(sqrt($a) * sqrt($a) *

                                  sqrt($a));

  

        echo($b . " ");

        $a = $b;

    }

}

  
// Код драйвера
printJuggler(3);

echo("\n");

printJuggler(9);

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


Выход:

3 5 11 36 6 2 1 
9 27 140 11 36 6 2 1

Важные моменты:

  • Слагаемые в последовательности Жонглера сначала увеличиваются до пикового значения, а затем начинают уменьшаться.
  • Последний член в последовательности Жонглера всегда равен 1.

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

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

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

Последовательность жонглеров

0.00 (0%) 0 votes