#practiceLinkDiv { display: none !important; }Žongliera secība ir veselu skaitļu virkne, kurā pirmais vārds sākas ar pozitīvu veselu skaitli a un pārējie termini tiek ģenerēti no tiešā iepriekšējā termina, izmantojot tālāk norādīto atkārtošanās attiecību:
a_{k+1}=begin{Bmatrix} lfloor a_{k}^{1/2} rfloor & for Quad pāra quad a_k\ lfloor a_{k}^{3/2} rfloor & for Quad nepāra quad a_k end{Bmatrix}
Žonglieru secība, kas sākas ar numuru 3:
3 5 11 36 6 2 1
Žonglieru secība, kas sākas ar numuru 9:
9 27 140 11 36 6 2 1
Dots skaitlis n mums ir jādrukā žongliera secība šim skaitlim kā pirmais secības termins.
Piemēri:
burbuļu kārtošana algoritmā
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 1Recommended Practice Žonglieru secība Izmēģiniet to! C++
// C++ implementation of Juggler Sequence #include using namespace std; // This function prints the juggler Sequence void printJuggler(long long n) { long long a = n; // print the first term cout << a << ' '; // calculate terms until // last term is not 1 while (a != 1) { long long b = 0; // Check if previous term // is even or odd if (a % 2 == 0) // calculate next term b = floor(sqrt(a)); else // for odd previous term // calculate next term b = floor(sqrt(a) * sqrt(a) * sqrt(a)); cout << b << ' '; a = b; } } // Driver Code int main() { printJuggler(37); cout <<'n'; printJuggler(9); return 0; } // This code is contributed by shubhamsingh10
C // C implementation of Juggler Sequence #include #include // This function prints the juggler Sequence void printJuggler(int n) { int a = n; // print the first term printf('%d ' a); // calculate terms until last term is not 1 while (a != 1) { int b = 0; // Check if previous term is even or odd if (a%2 == 0) // calculate next term b = floor(sqrt(a)); else // for odd previous term calculate // next term b = floor(sqrt(a)*sqrt(a)*sqrt(a)); printf('%d ' b); a = b; } } //driver program to test above function int main() { printJuggler(3); printf('n'); printJuggler(9); return 0; }
Java // Java implementation of Juggler Sequence import java.io.*; import java.math.*; class GFG { // This function prints the juggler Sequence static void printJuggler(int n) { int a = n; // print the first term System.out.print(a+' '); // calculate terms until last term is not 1 while (a != 1) { int b = 0; // Check if previous term is even or odd if (a%2 == 0) // calculate next term b = (int)Math.floor(Math.sqrt(a)); else // for odd previous term calculate // next term b =(int) Math.floor(Math.sqrt(a) * Math.sqrt(a) * Math.sqrt(a)); System.out.print( b+' '); a = b; } } // Driver program to test above function public static void main (String[] args) { printJuggler(3); System.out.println(); printJuggler(9); } } //This code is contributed by Nikita Tiwari.
Python3 import math #This function prints the juggler Sequence def printJuggler(n) : a = n # print the first term print (aend=' ') # calculate terms until last term is not 1 while (a != 1) : b = 0 # Check if previous term is even or odd if (a%2 == 0) : # calculate next term b = (int)(math.floor(math.sqrt(a))) else : # for odd previous term calculate # next term b = (int) (math.floor(math.sqrt(a)*math.sqrt(a)* math.sqrt(a))) print (bend=' ') a = b printJuggler(3) print() printJuggler(9) # This code is contributed by Nikita Tiwari.
C# // C# implementation of Juggler Sequence using System; class GFG { // This function prints the juggler Sequence static void printJuggler(int n) { int a = n; // print the first term Console.Write(a+' '); // calculate terms until last term is not 1 while (a != 1) { int b = 0; // Check if previous term is even or odd if (a%2 == 0) // calculate next term b = (int)Math.Floor(Math.Sqrt(a)); else // for odd previous term calculate // next term b =(int) Math.Floor(Math.Sqrt(a) * Math.Sqrt(a) * Math.Sqrt(a)); Console.Write( b+' '); a = b; } } // Driver Code public static void Main () { printJuggler(3); Console.WriteLine(); printJuggler(9); } } // This code is contributed by Nitin Mittal
PHP // PHP implementation of // Juggler Sequence // function prints the // juggler Sequence function printJuggler($n) { $a = $n; // print the first term echo($a . ' '); // calculate terms until // last term is not 1 while ($a != 1) { $b = 0; // Check if previous // term is even or odd if ($a % 2 == 0) // calculate next term $b = floor(sqrt($a)); else // for odd previous term // calculate next term $b = floor(sqrt($a) * sqrt($a) * sqrt($a)); echo($b . ' '); $a = $b; } } // Driver Code printJuggler(3); echo('n'); printJuggler(9); // This code is contributed by Ajit. ?> JavaScript <script> // Javascript implementation of Juggler Sequence // This function prints the juggler Sequence function printJuggler(n) { let a = n; // print the first term document.write(a+' '); // calculate terms until last term is not 1 while (a != 1) { let b = 0; // Check if previous term is even or odd if (a%2 == 0) // calculate next term b = Math.floor(Math.sqrt(a)); else // for odd previous term calculate // next term b = Math.floor(Math.sqrt(a) * Math.sqrt(a) * Math.sqrt(a)); document.write( b+' '); a = b; } } // Driver code to test above methods printJuggler(3); document.write('
'); printJuggler(9); // This code is contributed by avijitmondal1998. </script>
Izvade:
3 5 11 36 6 2 1 9 27 140 11 36 6 2 1
Laika sarežģītība : O(nlogn), jo vienas while cilpas izmantošanai un kvadrātsaknes atrašanai nepieciešams logaritmisks laiks.
Telpas sarežģītība : O(1) nemainīgiem mainīgajiem
Svarīgi punkti:
atsauces mainīgais Java
- Žonglieru secības termini vispirms palielinās līdz maksimālajai vērtībai un pēc tam sāk samazināties.
- Žonglieru secības pēdējais termins vienmēr ir 1.
Atsauce:
https://en.wikipedia.org/wiki/Juggler_sequence