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