Showing posts with label bnumber to words. Show all posts
Showing posts with label bnumber to words. Show all posts

Monday, February 6, 2012

no to word and then count

package test1;
/*
 * bhatt.umang7@gmail.com
 */

/*
 * If the numbers 1 to 5 are written out in words: one, two, three, four, five,
 * then there are 3 + 3 + 5 + 4 + 4 = 19 letters used in total.
 *
 * If all the numbers from 1 to 1000 (one thousand) inclusive were written out
 * in words, how many letters would be used?
 *
 * NOTE: Do not count spaces or hyphens. For example, 342 (three hundred and
 * forty-two) contains 23 letters and 115 (one hundred and fifteen) contains 20
 * letters. The use of "and" when writing out numbers is in compliance with
 * British usage.
 */
// ans 21124
/**
 @author umang
 */
public class Problem_17
{

    public static String _100toStr(int n)
    {
        String ans = "";
        if (n % 100 == 0)
        {
            int temp = n;
            temp /= 100;
            ans = _1toStr(temp" hundred";
        else if (n % 100 >= && n % 100 <= 9)
        {
            int temp = n;
            int temp_1 = n % 10;
            temp /= 100;
            ans = _1toStr(temp" hundred and " + _1toStr(temp_1);
        else
        {
            int temp = n;
            int temp_1 = n % 100;
            temp /= 100;
            ans = _1toStr(temp" hundred and " + _10toStr(temp_1);
        }
        return ans;
    }

    public static String _10toStr(int n)
    {
        int temp = n;
        String value = "";

        if (temp == 10)
        {
            value = "ten";
        else if (temp == 11)
        {
            value = "eleven";
        else if (temp == 12)
        {
            value = "twelve";
        else if (temp == 13)
        {
            value = "thirteen";
        else if (temp == 14)
        {
            value = "fourteen";
        else if (temp == 15)
        {
            value = "fifteen";
        else if (temp == 16)
        {
            value = "sixteen";
        else if (temp == 17)
        {
            value = "seventeen";
        else if (temp == 18)
        {
            value = "eighteen";
        else if (temp == 19)
        {
            value = "nineteen";
        else if (temp == 20)
        {
            value = "twenty";
        else if (temp > 20 && temp < 30)
        {
            value = "twenty " + _1toStr(temp % 10);
        else if (temp == 30)
        {
            value = "thirty";
        else if (temp > 30 && temp < 40)
        {
            value = "thirty " + _1toStr(temp % 10);
        else if (temp == 40)
        {
            value = "forty";
        else if (temp > 40 && temp < 50)
        {
            value = "forty " + _1toStr(temp % 10);
        else if (temp == 50)
        {
            value = "fifty";
        else if (temp > 50 && temp < 60)
        {
            value = "fifty " + _1toStr(temp % 10);
        else if (temp == 60)
        {
            value = "sixty";
        else if (temp > 60 && temp < 70)
        {
            value = "sixty " + _1toStr(temp % 10);
        else if (temp == 70)
        {
            value = "seventy";
        else if (temp > 70 && temp < 80)
        {
            value = "seventy " + _1toStr(temp % 10);
        else if (temp == 80)
        {
            value = "eighty"// eighty 
        else if (temp > 80 && temp < 90)
        {
            value = "eighty " + _1toStr(temp % 10);
        else if (temp == 90)
        {
            value = "ninety"// ninety 
        else if (temp > 90 && temp <= 99)
        {
            value = "ninety " + _1toStr(temp % 10);
        }
        return value;
    }

    public static String _1toStr(int n)
    {
        int temp = n;
        String value = "";
        String valueArr[] =
        {
            "zero""one""two""three""four""five""six""seven""eight""nine"
        };
        return valueArr[n];
    }

    public static String notoStr(int no)
    {
        String ans = "";
        if (no < 10)
        {
            ans = _1toStr(no);
        }
        if (no >= 10 && no <= 99)
        {
            ans = _10toStr(no);
        }
        if (no > 99 && no < 1000)
        {
            ans = _100toStr(no);
        }
        return ans;
    }

    public static void main(String args[])
    {
        String ans = "";
        for (int i = 1; i < 1000; i++)
        {
            ans = ans + "\n" + notoStr(i);
        }
        ans += "\none thousand";
        System.out.println(ans);
        // ans = notoStr(342);
        long count = 0;
        for (int i = 0; i < ans.length(); i++)
        {
            if (ans.charAt(i!= ' ' && ans.charAt(i!= '\n' && ans.charAt(i!= '-')
            {
                count++;
            }
        }
        System.out.println(count);
    }
}