Description
import java.util.ArrayList;
public class euler17 {
public static void main(String[] args) {
int[] ones = {3,3,5,4,4,3,5,5,4};
int[] teens = {6,6,8,8,7,7,9,8,8};
int[] dec = {3,6,6,5,5,5,7,6,6};
//1 to 9
int sum1 = 0;
for (int i = 0; i < ones.length; i++)
sum1 += ones[i];
//10 to 19
int sum2 = 0;
for (int i = 0; i < teens.length; i++)
sum2 += teens[i];
sum2 += 3;
// 20 to 90 only decimals
int sum3 = 0;
for (int i = 1; i < dec.length; i++)
sum3 += dec[i];
//21 to 99
int sum4 = 0;
ArrayList<Integer> list = new ArrayList<Integer>();
for (int i = 1; i < dec.length; i++) {
for (int j = 0; j < ones.length; j++) {
list.add(dec[i] + ones[j]);
sum4 += list.get(list.size()-1);
}
}
// 101 to 999
int sum5 = 0;
for (int i = 0; i < ones.length; i++) {
for (int j = 0; j < ones.length; j++) {
sum5 += ones[i] + ones[j] + 10; // 101 to 909
}
for (int j = 0; j < teens.length; j++) {
sum5 += ones[i] + teens[j] + 10; // 111 to 919
}
for (int j = 0; j < dec.length; j++) {
sum5 += ones[i] + dec[j] + 10; // 110 to 990
}
for (int j = 0; j < list.size(); j++) {
sum5 += ones[i] + list.get(j) + 10;
}
}
int sum6 = 0;
for (int i = 0; i < ones.length; i++) { // 100 to 900
sum6 += ones[i] + 7;
}
System.out.println(sum1 + sum2 + sum3 + sum4 + sum5 + sum6 + 11);
}
}
Leave a Reply