Problem 17. Number letter counts

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

Your email address will not be published. Required fields are marked *

*

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>