Dada una serie de números compuestos únicamente por los dígitos 3 y 5. Los primeros números de la serie son:
3, 5, 33, 35, 53, 55, …..
Ejemplos:
Input: N = 2 Output: 5 Input: N = 5 Output: 53
Para la solución O(n) , consulte Programa para encontrar el N-ésimo término de la serie 3, 5, 33, 35, 53…. . En esta publicación, se analiza una solución O (log n) que se basa en el siguiente patrón en números. Los números se pueden ver.
"" / \ 3 5 / \ / \ 33 35 53 55 / \ / \ / \ / \
La idea es llenar el número requerido desde el final. Sabemos que podemos observar que el último dígito es 3 si n es impar y el último dígito es 5 si n es par. Después de completar el último dígito, nos movemos al Node padre en un árbol. Si n es impar, entonces el Node padre corresponde a (n-1)/2. De lo contrario, el Node principal corresponde a (n-2)/2.
C++
// C++ program to find n-th number containing // only 3 and 5. #include <bits/stdc++.h> using namespace std; string findNthNo(int n) { string res = ""; while (n >= 1) { // If n is odd, append 3 and // move to parent if (n & 1) { res = res + "3"; n = (n - 1) / 2; } // If n is even, append 5 and // move to parent else { res = res + "5"; n = (n - 2) / 2; } } // Reverse res and return. reverse(res.begin(), res.end()); return res; } // Driver code int main() { int n = 5; cout << findNthNo(n); return 0; }
Java
// java program to find n-th number // containing only 3 and 5. public class GFG { static String findNthNo(int n) { String res = ""; while (n >= 1) { // If n is odd, append // 3 and move to parent if ((n & 1) == 1) { res = res + "3"; n = (n - 1) / 2; } // If n is even, append // 5 and move to parent else { res = res + "5"; n = (n - 2) / 2; } } // Reverse res and return. StringBuilder sb = new StringBuilder(res); sb.reverse(); return new String(sb); } // Driver code public static void main(String args[]) { int n = 5; System.out.print(findNthNo(n)); } }
Python3
# Python3 program to find # n-th number containing # only 3 and 5. def reverse(s): if len(s) == 0: return s else: return reverse(s[1:]) + s[0] def findNthNo(n): res = ""; while (n >= 1): # If n is odd, append # 3 and move to parent if (n & 1): res = res + "3"; n = (int)((n - 1) / 2); # If n is even, append 5 # and move to parent else: res = res + "5"; n = (int)((n - 2) / 2); # Reverse res # and return. return reverse(res); # Driver code n = 5; print(findNthNo(n));
C#
// C# program to find n-th number // containing only 3 and 5. using System; class GFG { // function to reverse a string public static string Reverse(string s) { char[] charArray = s.ToCharArray(); Array.Reverse(charArray); return new string(charArray); } // function to find nth number static string findNthNo(int n) { string res = ""; while (n >= 1) { // If n is odd, append // 3 and move to parent if ((n & 1) == 1) { res = res + "3"; n = (n - 1) / 2; } // If n is even, append // 5 and move to parent else { res = res + "5"; n = (n - 2) / 2; } } string sb = Reverse(res) ; return sb ; } // Driver code static void Main() { int n = 5; Console.WriteLine(findNthNo(n)); } } // This code is contributed by ANKITRAI1
PHP
<?php // PHP program to find n-th number // containing only 3 and 5. function findNthNo($n) { $res = ""; while ($n >= 1) { // If n is odd, append 3 // and move to parent if ($n & 1) { $res = $res + "3"; $n = ($n - 1) / 2; } // If n is even, append 5 // and move to parent else { $res = $res . "5"; $n = ($n - 2) / 2; } } // Reverse res and return. $res = strrev($res); return $res; } // Driver code $n = 5; echo findNthNo($n); // This code is contributed // by ChitraNayal ?>
Javascript
<script> // Javascript program to find n-th number // containing only 3 and 5. function reverseString(str) { return str.split("").reverse().join(""); } function findNthNo( n) { let res = ""; while (n >= 1) { // If n is odd, append // 3 and move to parent if ((n & 1) == 1) { res = res + "3"; n = (n - 1) / 2; } // If n is even, append // 5 and move to parent else { res = res + "5"; n = (n - 2) / 2; } } // Reverse res and return. sb = (res); sb =reverseString(sb); return (sb); } // Driver code let n = 5; document.write(findNthNo(n)); // This code contributed by Princi Singh </script>
53
Publicación traducida automáticamente
Artículo escrito por pawan_asipu y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA