Advertisement
Guest User

Untitled

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