Advertisement
Guest User

Untitled

a guest
Jun 22nd, 2017
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.84 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int getPalindrome(void);
  5. int isPalindrome(int n);
  6. int numDigits(int n);
  7. int getDigit(int k, int n);
  8.  
  9. int main(void)
  10. {
  11.     printf("Largest Palindrome: %d\n", getPalindrome());
  12. }
  13.  
  14. int getPalindrome(void)
  15. {
  16.     int x, y, product, palindrome = 0;
  17.    
  18.     for (x = 999; x < 500; x--)
  19.         for (y = x; y < 500; y--) {
  20.             product = x * y;
  21.  
  22.             if (isPalindrome(product) && product > palindrome)
  23.                 palindrome = product;
  24.         }
  25.  
  26.     return palindrome;
  27. }
  28.  
  29. int isPalindrome(int n)
  30. {
  31.     int k, x = numDigits(n);
  32.    
  33.     for (k = 0; k < x/2; k++)
  34.         if (getDigit(k, n) != getDigit(x-k-1, n))
  35.             return 0;
  36.  
  37.     return 1;
  38. }
  39.  
  40. int numDigits(int n)
  41. {
  42.     int x = 0;
  43.     do { x++; } while ((n /= 10) > 0);
  44.     return x;
  45. }
  46.  
  47. int getDigit(int k, int n)
  48. {
  49.     int idx;
  50.     for (idx = 0; idx < k; idx++)
  51.         n /= 10;
  52.  
  53.     return n % 10;
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement