Pages

Tuesday, September 8, 2009

Euler Problem 18 solution

Time (s): ~0.001
package margusmartseppcode.From_10_to_19;

public class Problem_18 {

 static int nrs[][] = { { 75 }, { 95, 64 }, { 17, 47, 82 },
   { 18, 35, 87, 10 }, { 20, 04, 82, 47, 65 },
   { 19, 01, 23, 75, 03, 34 }, { 88, 02, 77, 73, 07, 63, 67 },
   { 99, 65, 04, 28, 06, 16, 70, 92 },
   { 41, 41, 26, 56, 83, 40, 80, 70, 33 },
   { 41, 48, 72, 33, 47, 32, 37, 16, 94, 29 },
   { 53, 71, 44, 65, 25, 43, 91, 52, 97, 51, 14 },
   { 70, 11, 33, 28, 77, 73, 17, 78, 39, 68, 17, 57 },
   { 91, 71, 52, 38, 17, 14, 91, 43, 58, 50, 27, 29, 48 },
   { 63, 66, 04, 68, 89, 53, 67, 30, 73, 16, 69, 87, 40, 31 },
   { 04, 62, 98, 27, 23, 9, 70, 98, 73, 93, 38, 53, 60, 04, 23 } };

 public static void main(String[] args) {
  for (int i = nrs.length - 2; i >= 0; i--)
   for (int j = 0; j < nrs[i].length; j++)
    nrs[i][j] += Math.max(nrs[i + 1][j], nrs[i + 1][j + 1]);

  System.out.println(nrs[0][0]);
 }
}

No comments:

Post a Comment