Exemplo n.º 1
0
Arquivo: eul004.c Projeto: gidj/cEuler
int unsigned long
largestPalindrome(int unsigned long a, int unsigned long b, int unsigned long palin) {
  if (a < 1) {
    return palin;
  }

  if (b < 1) {
    return largestPalindrome(a-1, a-2, palin);
  }

  int unsigned long temp = a*b;

  if (temp < palin) {
    if ((a-1)*(a-1) < palin) {
      return palin;
    } else { 
      return largestPalindrome(a-1, a-2, palin);
    }
  }

  if (ispalindrome(temp)) {
    if (temp > palin) {
      palin = temp;
      printf("New palindrome! %lu\n", palin);

      if ((a-1)*(a-2) < palin) {
        return palin;
      } else {
        return largestPalindrome(a-1, a-2, palin);
      }
    }
  }
  
  return largestPalindrome(a, b-1, palin);
}
int main() {
    int cases, n;
    testCases();
    scanf("%d", &cases);
    while (cases--) {
        scanf("%d", &n);
        printf("%d\n", largestPalindrome(n));
    }
    return 0;
}
Exemplo n.º 3
0
Arquivo: eul004.c Projeto: gidj/cEuler
int main(int argc, char *argv[]) {
  int unsigned long num1 = 999;
  int unsigned long num2 = 999;
  int unsigned long palin = 1;
  bool ispalindrome(int unsigned long);
  int unsigned long largestPalindrome(int unsigned long, int unsigned long, int unsigned long);

  if (argc > 1) {
    num1 = strtol(argv[1], (char **)NULL, 10);
    num2 = num1;
  } 

  printf("%lu, %lu\n", num1, num2);
  palin = largestPalindrome(num1, num2, palin);

  printf("The number %lu is the largest palindrome\n", palin);

  return 0;
}
Exemplo n.º 4
0
Arquivo: p4.cpp Projeto: schwede/pe
int main()
{
	std::cout << largestPalindrome() << std::endl;

	return 0;
}
Exemplo n.º 5
0
int main(int argc, const char * argv[])
{
    int answer = largestPalindrome(3);
    std::cout << "Project Euler - Problem 4: " << answer << std::endl;
    return 0;
}
void testCases() {
    int largest = largestPalindrome(800000);
    largestPalindrome(101110) == 101101 ?  printf("success\n") : printf("failed %d is incorrect\n", largest);
    largest = largestPalindrome(800000);
    largestPalindrome(800000) == 793397 ?  printf("success\n") : printf("failed %d is incorrect\n", largest);
}