 GFG App
Open App Browser
Continue

# Find n-th element in a series with only 2 digits (4 and 7) allowed

Consider a series of numbers composed of only digits 4 and 7. First few numbers in the series are 4, 7, 44, 47, 74, 44744,.. etc. Given a number n, we need to find n-th number in the series.
Examples:

Input : n = 2
Output : 7

Input : n = 3
Output : 44

Input  : n = 5
Output : 74

Input  : n = 6
Output : 77

Recommended Practice

The idea is based on the fact that the value of last digit alternates in series. For example, if last digit of i-th number is 4, then last digit of (i-1)-th and (i+1)-th numbers must be 7.
We create an array of size (n+1) and push 4 and 7 (These two are always first two elements of series) to it. For more elements we check
1) If i is odd,
arr[i] = arr[i/2]*10 + 4;
2) If it is even,
arr[i] = arr[(i/2)-1]*10 + 7;
At last return arr[n].

## C++

 `// C++ program to find n-th number in a series` `// made of digits 4 and 7` `#include ` `using` `namespace` `std;`   `// Return n-th number in series made of 4 and 7` `int` `printNthElement(``int` `n)` `{` `    ``// create an array of size (n+1)` `    ``int` `arr[n+1];` `    ``arr = 4;` `    ``arr = 7;`   `    ``for` `(``int` `i=3; i<=n; i++)` `    ``{` `        ``// If i is odd` `        ``if` `(i%2 != 0)` `            ``arr[i] = arr[i/2]*10 + 4;` `        ``else` `            ``arr[i] = arr[(i/2)-1]*10 + 7;` `    ``}` `    ``return` `arr[n];` `}`   `// Driver code` `int` `main()` `{` `    ``int` `n = 6;` `    ``cout << printNthElement(n);` `    ``return` `0;` `}`

## Java

 `// Java program to find n-th number in a series` `// made of digits 4 and 7`   `class` `FindNth` `{` `    ``// Return n-th number in series made of 4 and 7` `    ``static` `int` `printNthElement(``int` `n)` `    ``{` `        ``// create an array of size (n+1)` `        ``int` `arr[] = ``new` `int``[n+``1``];` `        ``arr[``1``] = ``4``;` `        ``arr[``2``] = ``7``;` `     `  `        ``for` `(``int` `i=``3``; i<=n; i++)` `        ``{` `            ``// If i is odd` `            ``if` `(i%``2` `!= ``0``)` `                ``arr[i] = arr[i/``2``]*``10` `+ ``4``;` `            ``else` `                ``arr[i] = arr[(i/``2``)-``1``]*``10` `+ ``7``;` `        ``}` `        ``return` `arr[n];` `    ``}    ` `    `  `    ``// main function` `    ``public` `static` `void` `main (String[] args) ` `    ``{` `        ``int` `n = ``6``;` `        ``System.out.println(printNthElement(n));` `    ``}` `}`

## Python3

 `# Python3 program to find n-th number ` `# in a series made of digits 4 and 7`   `# Return n-th number in series made ` `# of 4 and 7` `def` `printNthElement(n) :` `    `  `    ``# create an array of size (n + 1)` `    ``arr ``=``[``0``] ``*` `(n ``+` `1``);` `    ``arr[``1``] ``=` `4` `    ``arr[``2``] ``=` `7`   `    ``for` `i ``in` `range``(``3``, n ``+` `1``) :` `        ``# If i is odd` `        ``if` `(i ``%` `2` `!``=` `0``) :` `            ``arr[i] ``=` `arr[i ``/``/` `2``] ``*` `10` `+` `4` `        ``else` `:` `            ``arr[i] ``=` `arr[(i ``/``/` `2``) ``-` `1``] ``*` `10` `+` `7` `    `  `    ``return` `arr[n]` `    `  `# Driver code` `n ``=` `6` `print``(printNthElement(n))`   `# This code is contributed by Nikita Tiwari.`

## C#

 `// C# program to find n-th number in a series` `// made of digits 4 and 7` `using` `System;`   `class` `GFG` `{` `    ``// Return n-th number in series made of 4 and 7` `    ``static` `int` `printNthElement(``int` `n)` `    ``{` `        ``// create an array of size (n+1)` `        ``int` `[]arr = ``new` `int``[n+1];` `        ``arr = 4;` `        ``arr = 7;` `    `  `        ``for` `(``int` `i = 3; i <= n; i++)` `        ``{` `            ``// If i is odd` `            ``if` `(i % 2 != 0)` `                ``arr[i] = arr[i / 2] * 10 + 4;` `            ``else` `                ``arr[i] = arr[(i / 2) - 1] * 10 + 7;` `        ``}` `        ``return` `arr[n];` `    ``} ` `    `  `    ``// Driver code` `    ``public` `static` `void` `Main () ` `    ``{` `        ``int` `n = 6;` `        ``Console.Write(printNthElement(n));` `    ``}` `}`   `// This code is contributed by vt_m.`

## PHP

 ``

## Javascript

 ``

Output:

`77`

Time Complexity: O(n) since using a for loop
Auxiliary Space: O(n) for creating an array of size N + 1.

Find n-th element in a series with only 2 digits (4 and 7) allowed | Set 2 (log(n) method)
This article is contributed by Roshni Agarwal. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.