All pastes #453458 Raw Edit

Untitled

public text v1 · immutable
·published 2007-04-23 00:41 UTC
rendered paste body
//Very very poor technique.. there must be a better way..
import java.util.*;
public class HipToBeSquare
{
        
        public static boolean isSquared(int x, int y, ArrayList tried){
              //System.out.printf("%d, %d%n", x, y);
              if (y == 0) return false;
              if (tried.contains(y)) return false;
              tried.add(y);
              if (x - y * y == 0){
                  return true;
                }
              int newNumber = (x - y * y);
              
              boolean worked = isSquared(newNumber, highestSquare(newNumber), tried);
              if (worked == false){
                  tried.remove(tried.indexOf(y));
                  return isSquared(x, y - 1, tried);
                }
            else{
                return true;
            }
            
            }

        public static int highestSquare(int x){
            for (int i = 1; i <= 100; i++){
            if (x >= i * i) 
                continue;
            else
                return i - 1;
            }
            return 0;
        }
        public static void main(String args[]){
            Scanner reader = new Scanner(System.in);
            System.out.print("Enter a number: ");
            int number = reader.nextInt();
            ArrayList tried = new ArrayList();
            if(isSquared(number, highestSquare(number), tried)) System.out.println(tried);
            else System.out.println("Cool!");
        
    }
}