logo

Grootste palindroom dat het product is van twee n-cijferige getallen

Gegeven een waarde n, zoek het grootste palindroomgetal dat het product is van twee n-cijferige getallen.

Voorbeelden:  



JavaScript-tekenreeks vervangen
Input : n = 2 Output : 9009 9009 is the largest number which is product of two 2-digit numbers. 9009 = 91*99. Input : n = 3 Output : 906609
Recommended Practice Grootste product Pallindroom Probeer het!


Hieronder vindt u de stappen om het vereiste nummer te vinden. 

  1. Zoek een ondergrens voor n-cijferige getallen. Voor n = 2 is de ondergrens bijvoorbeeld 10.
  2. Zoek een bovengrens voor n-cijferige getallen. Voor n = 2 is de bovengrens bijvoorbeeld 99.
  3. Beschouw alle getallenparen, ongeacht waar het getal binnen bereik ligt [lower_limit upper_limit]

Hieronder vindt u de implementatie van bovenstaande stappen. 

lang om te rijgen
C++
// C++ problem to find out the  // largest palindrome number which // is product of two n digit numbers #include    using namespace std; // Function to calculate largest  // palindrome which is product of // two n-digits numbers  int larrgestPalindrome(int n) {  int upper_limit = pow(10n) - 1;    // largest number of n-1 digit.   // One plus this number is lower  // limit which is product of two numbers.  int lower_limit = 1 + upper_limit / 10;  // Initialize result  int max_product = 0;   for (int i = upper_limit;   i >= lower_limit;   i--)  {  for (int j = i; j >= lower_limit; j--)  {  // calculating product of  // two n-digit numbers  int product = i * j;  if (product < max_product)  break;  int number = product;  int reverse = 0;  // calculating reverse of   // product to check whether  // it is palindrome or not  while (number != 0)  {  reverse = reverse * 10 +   number % 10;  number /= 10;  }  // update new product if exist   // and if greater than previous one   if (product == reverse &&   product > max_product)    max_product = product;  }  }  return max_product; } // Driver code int main() {  int n = 2;  cout << larrgestPalindrome(n);  return 0; } 
Java
// Java problem to find out the // largest palindrome number  // which is product of two  // n digit numbers. import java.lang.Math;  class GFG {  // Function to calculate largest  // palindrome which isproduct of  // two n-digits numbers   static int larrgestPalindrome(int n)  {  int upper_limit = (int)Math.pow(10 n) - 1;      // largest number of n-1 digit.   // One plus this number   // is lower limit which is   // product of two numbers.  int lower_limit = 1 + upper_limit / 10;    // Initialize result  int max_product = 0;    for (int i = upper_limit; i >= lower_limit; i--)  {  for (int j = i; j >= lower_limit; j--)  {  // calculating product of two   // n-digit numbers  int product = i * j;  if (product < max_product)  break;  int number = product;  int reverse = 0;    // calculating reverse of product  // to check whether it is   // palindrome or not  while (number != 0)  {  reverse = reverse * 10 + number % 10;  number /= 10;  }    // update new product if exist and if  // greater than previous one  if (product == reverse && product > max_product)  max_product = product;  }  }  return max_product;  }    // Driver code  public static void main (String[] args)  {    int n = 2;  System.out.print(larrgestPalindrome(n));  } } // This code is contributed by Anant Agarwal. 
Python3
# Python problem to find # out the largest palindrome # number which is product of # two n digit numbers. # Function to calculate largest # palindrome which is # product of two n-digits numbers def larrgestPalindrome(n): upper_limit = (10**(n))-1 # largest number of n-1 digit. # One plus this number  # is lower limit which is # product of two numbers. lower_limit = 1 + upper_limit//10 max_product = 0 # Initialize result for i in range(upper_limitlower_limit-1 -1): for j in range(ilower_limit-1-1): # calculating product of # two n-digit numbers product = i * j if (product < max_product): break number = product reverse = 0 # calculating reverse of # product to check # whether it is palindrome or not while (number != 0): reverse = reverse * 10 + number % 10 number =number // 10 # update new product if exist and if # greater than previous one if (product == reverse and product > max_product): max_product = product return max_product # Driver code n = 2 print(larrgestPalindrome(n)) # This code is contributed # by Anant Agarwal. 
C#
// C# problem to find out the // largest palindrome number  // which is product of two  // n digit numbers. using System; class GFG {  // Function to calculate largest  // palindrome which isproduct of  // two n-digits numbers   static int larrgestPalindrome(int n)  {  int upper_limit = (int)Math.Pow(10 n) - 1;      // largest number of n-1 digit.   // One plus this number   // is lower limit which is   // product of two numbers.  int lower_limit = 1 + upper_limit / 10;    // Initialize result  int max_product = 0;    for (int i = upper_limit; i >= lower_limit; i--)  {  for (int j = i; j >= lower_limit; j--)  {  // calculating product of two   // n-digit numbers  int product = i * j;  if (product < max_product)  break;  int number = product;  int reverse = 0;    // calculating reverse of product  // to check whether it is   // palindrome or not  while (number != 0)  {  reverse = reverse * 10 + number % 10;  number /= 10;  }    // update new product if exist and if  // greater than previous one  if (product == reverse && product > max_product)  max_product = product;  }  }  return max_product;  }    // Driver code  public static void Main ()  {    int n = 2;  Console.Write(larrgestPalindrome(n));  } } // This code is contributed by nitin mittal. 
PHP
 // PHP problem to find out  // the largest palindrome  // number which is product  // of two n digit numbers // Function to calculate  // largest palindrome which  // is product of two n-digit numbers function larrgestPalindrome($n) { $upper_limit = 0; // Loop to calculate upper bound  // (largest number of n-digit)  for ($i = 1; $i <= $n; $i++) { $upper_limit *= 10; $upper_limit += 9; } // largest number of n-1 digit // One plus this number  // is lower limit which is  // product of two numbers. $lower_limit = 1 + (int)($upper_limit / 10); // Initialize result $max_product = 0; for ($i = $upper_limit; $i >= $lower_limit; $i--) { for ($j = $i; $j >= $lower_limit; $j--) { // calculating product of // two n-digit numbers $product = $i * $j; if ($product < $max_product) break; $number = $product; $reverse = 0; // calculating reverse of  // product to check whether // it is palindrome or not  while ($number != 0) { $reverse = $reverse * 10 + $number % 10; $number = (int)($number / 10); } // update new product if exist  // and if greater than previous one if ($product == $reverse && $product > $max_product) $max_product = $product; } } return $max_product; } // Driver code $n = 2; echo(larrgestPalindrome($n)); // This code is contributed by Ajit. ?> 
JavaScript
<script>  // Javascript problem to find out the  // largest palindrome number  // which is product of two  // n digit numbers.    // Function to calculate largest  // palindrome which isproduct of  // two n-digits numbers  function larrgestPalindrome(n)  {  let upper_limit = Math.pow(10 n) - 1;      // largest number of n-1 digit.  // One plus this number  // is lower limit which is  // product of two numbers.  let lower_limit = 1 +   parseInt(upper_limit / 10 10);    // Initialize result  let max_product = 0;    for (let i = upper_limit; i >= lower_limit; i--)  {  for (let j = i; j >= lower_limit; j--)  {  // calculating product of two  // n-digit numbers  let product = i * j;  if (product < max_product)  break;  let number = product;  let reverse = 0;    // calculating reverse of product  // to check whether it is  // palindrome or not  while (number != 0)  {  reverse = reverse * 10 + number % 10;  number = parseInt(number / 10 10);  }    // update new product if exist and if  // greater than previous one  if (product == reverse &&   product > max_product)  max_product = product;  }  }  return max_product;  }    let n = 2;  document.write(larrgestPalindrome(n));   </script> 

Uitgang:



9009


Tijdcomplexiteit: O(n*n*logboek10(product)) waarbij n de berekende bovengrens is en product (product van twee n-cijferige getallen)
Hulpruimte: O(1) omdat er geen extra ruimte nodig is|
De aanpak die in dit bericht wordt gebruikt, is eenvoudig en duidelijk. Geef commentaar als u een betere aanpak vindt.