Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Project Euler Problem 17  (gelezen 1376 keer)

Offline n3p3nthess

  • Lid
  • Steunpunt: Nee
Project Euler Problem 17
« Gepost op: 2010/01/05, 00:18:27 »
Ik heb een probleem met Problem 17 van het Euler Project.
http://projecteuler.net/index.php?section=problems&id=17
Heeft iemand enig idee wat ik fout doe?

public class Problem17 {
    public static void main(String[] args) {
        int numberOfChar = 0;
        int copy = 0, tmp = 0;
        String test = "";
        String[] table1 = {"", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"};
        String[] table2 = {"", "", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"};
        String[] table3 = {"", "onehundredand", "twohundredand", "threehundredand", "fourhundredand", "fivehundredand", "sixhundredand", "sevenhundredand", "eighthundredand", "ninehundredand"};
        String[] table4 = {"", "onethousand"};

        for(int i = 1; i <= 1000; i++) {
            copy = i;
            test = "";
            if(copy == 1000) {
                numberOfChar += table4[1].length();
                test += table4[1];
            }
            if(copy >= 100 && copy < 1000) {
                copy = i / 100;
                numberOfChar += table3[copy].length();
                test += table3[copy];
                copy = i % 100;
            }
            if(copy >= 20 && copy < 100) {
                tmp = copy;
                copy /= 10;
                numberOfChar += table2[copy].length();
                test += table2[copy];
                copy = tmp % 10;
            }
            if(copy > 0 && copy < 20) {
                numberOfChar += table1[copy].length();
                test += table1[copy];
            }
            System.out.println(test);
        }
        System.out.println("number of char = " + numberOfChar);
    }
}
« Laatst bewerkt op: 2010/01/05, 01:08:16 door n3p3nthess »

Offline Rachid

  • Lid
    • rachidbm
    • Mijn blog
  • Steunpunt: Nee
Re: Project Euler Problem 17
« Reactie #1 Gepost op: 2010/01/05, 00:55:12 »
Wat gaat er fout dan?
Ben je ook blij dat Ubuntu zo toegankelijk en gratis is, en wil je graag net als ik iets terugdoen, kijk dan eens rond bij mwanzo, dé poort naar het bijdragen aan Ubuntu en haar gemeenschap!

Offline Rachid

  • Lid
    • rachidbm
    • Mijn blog
  • Steunpunt: Nee
Re: Project Euler Problem 17
« Reactie #2 Gepost op: 2010/01/05, 01:00:56 »
1 ding lijkt me al niet verstandig en dat is table3. "onehundredand" etc
Ik zou die and er in de code bij plakken. Gezien deze er niet altijd bijgeplakt moet worden, wanneer i %100 == 0 bijvoorbeeld ;)
Ben je ook blij dat Ubuntu zo toegankelijk en gratis is, en wil je graag net als ik iets terugdoen, kijk dan eens rond bij mwanzo, dé poort naar het bijdragen aan Ubuntu en haar gemeenschap!

Offline n3p3nthess

  • Lid
  • Steunpunt: Nee
Re: Project Euler Problem 17
« Reactie #3 Gepost op: 2010/01/05, 01:02:12 »
Het resultaat is niet correct.
De uitkomst met mijn code is: 21151.
Het zou namelijk 21124 moeten zijn.

Offline n3p3nthess

  • Lid
  • Steunpunt: Nee
Re: Project Euler Problem 17
« Reactie #4 Gepost op: 2010/01/05, 01:11:47 »
Bedankt,
Nu is de uitkomst wel correct