Probably the fastest I can with isPalindrome()... Brute Force way! I can't think of any way of not doing this brute force. Time to check the Project Euler forum ;)
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a = 999, b = 999, prod = 0, greatestProd = 0;
while (a > 0 && b > 0){
prod = a * b;
if (prod > greatestProd && isPalindrome(prod))
greatestProd = prod;
if (b-- == 1){
b = 999;
a--;
}
}
printf("%d\n", greatestProd);
return 0;
}
int isPalindrome(int num){
int rev = 0, num_copy = num;
while (num > 0){
rev = rev * 10 + num % 10;
num /= 10;
}
return (num_copy == rev) ? 1 : 0;
}
Answer:
No comments:
Post a Comment