Advertisement
Guest User

Project Euler #4 Java Solution

a guest
Jan 5th, 2014
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.22 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.Collections;
  3. public class Euler4{
  4.     public static void main(String [] args){
  5.         int size = 0;
  6.         int product = 0;
  7.         ArrayList<Integer> palindromes = new ArrayList<Integer>();
  8.         for(int i = 999; i > 100; i--){
  9.             for(int j = 100; j < i; j++){
  10.                 ArrayList<Integer> digits = new ArrayList<Integer>();
  11.                 product = i*j;
  12.                 int productcopy = product;
  13.                 int index = 0;
  14.    
  15.                 while(product != 0){
  16.                     digits.add(index,product%10);
  17.                     product /= 10;
  18.                     //System.out.println("digits :" + digits.get(index) + " index: " + index);
  19.                     index++;
  20.  
  21.                 }
  22.  
  23.                 size = digits.size() - 1;
  24.  
  25.                 if(test(0,size,digits)){
  26.                     palindromes.add(productcopy);
  27.                     break; 
  28.                 }
  29.             }
  30.         }
  31.         Object max = Collections.max(palindromes);
  32.         System.out.println("answer: " + max);
  33.     }
  34.  
  35.     public static boolean test(int i, int size, ArrayList<Integer> digits){
  36.  
  37.         if(digits.get(size).equals(digits.get(i))){
  38.  
  39.             if(size == i || size - i == 1){
  40.                 return true;
  41.                
  42.             }else{
  43.                 //System.out.println("i: " + i + " size: " + size + " digits@i: " + digits.get(i) +" digits@size " + digits.get(i));
  44.                 size--;
  45.                 i++;
  46.                 return test(i, size, digits);
  47.             }  
  48.         }
  49.         return false;
  50.     }
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement