Programm zum Finden des N-ten Terms der Reihe 1, 2, 11, 12, 21….
Bei einer gegebenen Zahl N besteht die Aufgabe darin, den N-ten Term der Reihe zu finden:
1, 2, 11, 12, 21 …
Beispiele:
Input : N = 2 Output : 2 Input : N = 5 Output : 21
Ansatz:
Die Idee basiert darauf, dass sich der Wert der letzten Ziffer in der Reihe abwechselt. Wenn beispielsweise die letzte Ziffer der i-ten Zahl 1 ist, muss die letzte Ziffer der (i-1)-ten und (i+1)-ten Zahl 2 sein
. Erstellen Sie daher ein Array der Größe (n+1) und drücken Sie 1 und 2 (Diese beiden sind immer die ersten beiden Elemente einer Reihe) dazu.
Daher ist der i-te Term des Arrays:
1) Wenn i ungerade ist, ist
arr[i] = arr[i/2]*10 + 1;
2) Wenn i gerade ist,
arr[i] = arr[(i/2)-1]*10 + 2;
Zuletzt kehre arr[n] zurück.
Unten ist die Umsetzung der obigen Idee:
C++
// C++ program to find // the N-th term in the series // 1, 2, 11, 12, 21... #include <bits/stdc++.h> using namespace std; // Function to find N-th number in series int printNthElement(int N) { // create an array of size (N+1) int arr[N + 1]; arr[1] = 1; arr[2] = 2; for (int i = 3; i <= N; i++) { // If i is odd if (i % 2 != 0) { arr[i] = arr[i / 2] * 10 + 1; } else { arr[i] = arr[(i / 2) - 1] * 10 + 2; } } return arr[N]; } // Driver code int main() { // Get N int N = 5; // Get Nth term cout << printNthElement(N); return 0; }
Java
// Java program to find // the N-th term in the series // 1, 2, 11, 12, 21... class FindNth { // Function to find n-th number in series static int printNthElement(int n) { // create an array of size (n+1) int arr[] = new int[n + 1]; arr[1] = 1; arr[2] = 2; for (int i = 3; i <= n; i++) { // If i is odd if (i % 2 != 0) arr[i] = arr[i / 2] * 10 + 1; else arr[i] = arr[(i / 2) - 1] * 10 + 2; } return arr[n]; } // main function public static void main(String[] args) { int n = 5; System.out.println(printNthElement(n)); } }
Python3
# Python3 program to find # the N-th term in the series # 1, 2, 11, 12, 21... # Return n-th number in series def printNthElement(n) : # create an array of size (n + 1) arr =[0] * (n + 1); arr[1] = 1 arr[2] = 2 for i in range(3, n + 1) : # If i is odd if (i % 2 != 0) : arr[i] = arr[i // 2] * 10 + 1 else : arr[i] = arr[(i // 2) - 1] * 10 + 2 return arr[n] # Driver code n = 5 print(printNthElement(n))
C#
// C# program to find // the N-th term in the series // 1, 2, 11, 12, 21... using System; class GFG { // Function to find n-th // number in series static int printNthElement(int n) { // create an array of size (n+1) int []arr = new int[n + 1]; arr[1] = 1; arr[2] = 2; for (int i = 3; i <= n; i++) { // If i is odd if (i % 2 != 0) arr[i] = arr[i / 2] * 10 + 1; else arr[i] = arr[(i / 2) - 1] * 10 + 2; } return arr[n]; } // Driver Code public static void Main() { int n = 5; Console.WriteLine(printNthElement(n)); } } // This code is contributed // by inder_verma
PHP
<?php // PHP program to find // the N-th term in the series // 1, 2, 11, 12, 21... // Function to find N-th // number in series function printNthElement($N) { // create an array of size (N+1) $arr = array($N + 1); $arr[1] = 1; $arr[2] = 2; for ( $i = 3; $i <= $N; $i++) { // If i is odd if ($i % 2 != 0) { $arr[$i] = $arr[$i / 2] * 10 + 1; } else { $arr[$i] = $arr[($i / 2) - 1] * 10 + 2; } } return $arr[$N]; } // Driver code $N = 5; // Get Nth term echo printNthElement($N); // This code is contributed // by Mahadev99 ?>
Javascript
<script> // Javascript program to find // the N-th term in the series // 1, 2, 11, 12, 21... // Function to find n-th number in series function printNthElement(n) { // create an array of size (n+1) let arr = new Array(n + 1); arr[1] = 1; arr[2] = 2; for (let i = 3; i <= n; i++) { // If i is odd if (i % 2 != 0) arr[i] = arr[parseInt(i / 2, 10)] * 10 + 1; else arr[i] = arr[parseInt(i / 2, 10) - 1] * 10 + 2; } return arr[n]; } let n = 5; document.write(printNthElement(n)); // This code is contributed by vaibhavrabadiya117. </script>
Ausgabe:
21