# 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: Please solve it on “PRACTICE ” first, before moving on to the solution.

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

 ` `

Output:

```77
```

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 contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up

Improved By : jit_t

Article Tags :
Practice Tags :

1

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.