# 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.

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.