staging.inyokaproject.org

[Code-Gala] Lychrel-Zahlen

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |
Dieses Thema ist die Diskussion des Artikels Projekte/Code_Gala.

hannenz

Anmeldungsdatum:
7. Dezember 2006

Beiträge: 405

ja du hast recht mit den 5 bzw. 6 Stellen. Ich hab das jetzt mal geändert und die "number" noch in die Zeropage gelegt, damit komm ich jetzt auf 15.79 Sekunden. Ich glaube mehr ist nicht zu machen.
Was ich jetzt noch interessant fände wäre, das Dingens als Benchmark für versch. C-Implementationen auf dem C64/C128 zu nutzen, also cc65, Power-C, Super-C - würde mich mal interessieren, welcher Compiler da bei gleichem Sourcecode am besten abschneidet.
Sag mal, Marc, bist du eigentlich auch in einem der einschlägigen 8-bit Foren (z. Bsp. forum-64.de) zugegen, würde da evtl. besser passen, als hier 😉

BigMc

Avatar von BigMc

Anmeldungsdatum:
18. März 2007

Beiträge: 1814

Moin,

was soll nun mit der Seite Baustelle/Code Gala passieren? Löschen oder nach Projekte verschieben? Oder sagen wir mal so: würde jemand der Seite nachtrauern? In der Baustelle kann sie jedenfalls nicht bleiben.

Gruß, BigMc

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17432

Ich würde nachtrauern.

BigMc

Avatar von BigMc

Anmeldungsdatum:
18. März 2007

Beiträge: 1814

So sehr, dass du die paar Syntaxfehler ausbesserst, damit ich nach Projekte verschieben kann?

EDIT: Ok, verschoben. Wieder eine Baustelle weniger. ☺

Hello_World

Anmeldungsdatum:
13. Juni 2006

Beiträge: 3620

user unknown hat so gut wie nichts verbessert. Die C- und C++-Programme waren voll mit irgendwelchen völlig sinnlosen Sternchen. Ich hab das jetzt mal überarbeitet, allerdings müsste jetzt die Baustelle wieder entfernt werden.

BigMc

Avatar von BigMc

Anmeldungsdatum:
18. März 2007

Beiträge: 1814

Jetzt erstellt bitte nicht immer wieder die Baustelle neu. Die Seite ist jetzt unter Projekte/Code Gala. Baustelle nochmal gelöscht.

Hello_World

Anmeldungsdatum:
13. Juni 2006

Beiträge: 3620

BigMc schrieb:

Jetzt erstellt bitte nicht immer wieder die Baustelle neu. Die Seite ist jetzt unter Projekte/Code Gala. Baustelle nochmal gelöscht.

Entschuldigung, ich werde mir nicht nochmal die Mühe machen, dutzende Syntaxfehler in der Seite zu beheben.

Sid_Burn

Anmeldungsdatum:
23. Oktober 2004

Beiträge: 2159

Hello World schrieb:

BigMc schrieb:

Jetzt erstellt bitte nicht immer wieder die Baustelle neu. Die Seite ist jetzt unter Projekte/Code Gala. Baustelle nochmal gelöscht.

Entschuldigung, ich werde mir nicht nochmal die Mühe machen, dutzende Syntaxfehler in der Seite zu beheben.

Qualität wird halt bei ubuntu(users) generell nicht hoch angesehen. Auch ist wohl zu viel Wissen schädlich, daher möchte man auch gerne Sachen löschen. Vielleicht wäre ein Stop Schild gut?

BigMc

Avatar von BigMc

Anmeldungsdatum:
18. März 2007

Beiträge: 1814

Hello World schrieb:

Entschuldigung, ich werde mir nicht nochmal die Mühe machen, dutzende Syntaxfehler in der Seite zu beheben.

Sorry, hatte eine Änderung übersehen. Jetzt sind wieder alle Änderungen von dir auf der Seite im Wiki enthalten.

Gruß, BigMc

senden9

Avatar von senden9

Anmeldungsdatum:
8. Februar 2010

Beiträge: 965

Hi, wie sieht's mit dem "Projekt" (Code-Gala) aus? Ich hätte noch Interesse an so was. Schade das es "tot" ist, es könnte ja wieder ins Leben gerufen werden.

domachine

Anmeldungsdatum:
16. Mai 2007

Beiträge: 562

Ich wär auch noch interessiert. Wie wärs mit folgender Aufgabe, die ich aus dem Projekt Euler habe:

A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 x 99. Find the largest palindrome made from the product of two 3-digit numbers.

Übersetzt heiszt das so viel wie:

Ein Palindrom ist eine Zahl die in beide Richtungen gelesen die gleiche Zahl bleibt. Das längste Palindrom aus dem Produkt zweier 2-stelliger Zahlen ist 9009 = 91 x 99. Finde das längste Palindrom aus dem Produkt zweier 3-stelliger Zahlen.

Meine Lösung in C:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include <stdio.h>
#include <stdlib.h>


/*
  Faster but longer.
*/
int is_palin(int num)
{
    int i, x;    /* Runtime variables. */
    int len = 0;
    int limit; /* The limit. `len / 2` with even numbers and `len / 2 - 1`
                  with not even numbers. */
    int *stack;

    for(i = num; i > 0; i /= 10)
        ++len;

    limit = len / 2;

    stack = (int *)malloc(limit * sizeof(int));
    for(i = num, x = 0; x < limit; i /= 10, ++x)
        stack[x] = i % 10;

    i = (len % 2 == 0) ? i : (i / 10);
    for(x = limit - 1; x >= 0; i /= 10, --x) {
        if(i % 10 != stack[x])
            return 0;
    }

    free(stack);
    return 1;
}


/*
  Slower but shorter.
*/
int is_palin2(int num)
{
    int *stack = NULL;
    int i,       /* Runtime variable. */
        len = 0, /* Char length of the number. */
        limit;

    for(i = num; i != 0; i /= 10) {
        stack = (int *)realloc(stack, ++len * sizeof(int));
        stack[len - 1] = i % 10;
    }

    limit = len / 2;
    for(i = 0; i < limit; ++i) {
        if(stack[i] != stack[(len - 1) - i])
            return 0;
    }

    free(stack);
    return 1;
}


int main()
{
    int largest = 0,
        i,
        j,
        product = 2 * 4;

    for(i = 1; i < 10000; ++i) {
        for(j = 1; j < 10000; ++j) {
            product = i * j;
            if(product > largest && is_palin(product))
                largest = product;
        }
    }

    printf("Largest palindrome: %d\n", largest);
    return 0;
}

domachine

Anmeldungsdatum:
16. Mai 2007

Beiträge: 562

Entschuldigung hab die Überschrift nicht ganz gelesen. Mein Post ist dann wohl etwas fehlgeleitet.

sh4711

Anmeldungsdatum:
13. Februar 2011

Beiträge: 655

Danke für die Aufgabenstellung Lychrel Zahlen. War nicht trivial, habe was dazu gelernt.

Antworten |