Nieuws:

We zijn er weer.

Na lange tijd van afwezigheid zijn we er weer  :laugh:
We hebben alle wachtwoorden gereset, je oude wachtwoord werkt niet meer.Je moet via het "wachtwoord vergeten"-linkje je wachtwoord resetten. Je krijgt hiervoor een mailtje op het adres dat je bij ons geregistreerd hebt.

De komende tijd zijn we nog druk bezig om de rest van de site op te bouwen, dus het kan zijn dat sommige onderdelen (tijdelijk) niet werken.

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

Auteur Topic: Project Euler Problem 17  (gelezen 1291 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

  • Vertaalteam
    • 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

  • Vertaalteam
    • 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