aus Einer Zahl die Ziffern rauspicken



  • ich meinte die lösung von hume.. die modulo lösung ist wirklich gut und einfach verständlich.. aber dann kann sich doch mit dem ***** denken, dass ein anfänger die lösungen von hume nicht peilt..

    Was bitte ist an meinen drei Lösungen denn so kompliziert? Und inwiefern unterscheiden sie sich denn von der wirklich guten Modulo-Lösung? Ist meine zweite Lösung nicht genau die Modulo-Lösung?

    die frage ist, was für einen anfänger leichter zu verstehen ist..

    Nein. Die Frage ist:

    Wie kann ich aus Einer Zahl die Ziffern (Einer, Zehner...) rauspicken?

    das problem haben hier leider viele, dass sie immer mit lösungen kommen, die kein anfänger verstehen kann.. damit helft ihr hier keinem

    Dazu zwei Dinge:
    1. Zur Wiederholung:
    Was ist an den Lösungen von mir so furchtbar kompliziert, dass sie arme Anfänger nicht nur nicht verstehen können, sondern scheinbar ihnen auch jede Möglichkeit nimmt, Verständnisprobleme mittels Rückfragen zu klären?

    2. Hast du meinen Beitrag überhaupt gelesen? Wo steht dann da, dass die Lösungen gut sind? Habe ich nicht vielmehr meine bescheidenen Lösungsversuche in die Menge geworfen, in der Hoffnung, dass sie vielleicht dem einen oder andern hilft, aber insbesondere auch mit der Bitte das jemand "der sich mit Algorithmen und Funktionen auskennt" konkrete Verbesserungsvorschläge macht?
    Damit habe ich indirekt doch selbst um Hilfe gebeten.

    Also kurz: Wo ist eigentlich dein Problem?



  • @Hume:

    Ich finde Deine Lösungen ganz gut, bis auf eine Kleinigkeit:
    Alle drei haben Probleme mit der 0. Die erste dürfte abstürzen (log(0)).
    Die anderen geben keine einzige Ziffer zurück.



  • Jester schrieb:

    Ich finde Deine Lösungen ganz gut, bis auf eine Kleinigkeit:
    Alle drei haben Probleme mit der 0. Die erste dürfte abstürzen (log(0)).
    Die anderen geben keine einzige Ziffer zurück.

    Um dieses Problem habe ich mich ehrlich gesagt absichtlich gedrückt. Auf die schnelle konnte ich mich nämlich nicht für ein Verhalten bei 0 entscheiden.
    Jetzt wo ich drüber nachdenke, frage ich mich allerdings, warum ich zwischenzeitlich für 0 etwas anderes als eine Ziffer, nämlich 0, liefern wollte.

    Btw:
    log(0)/log(10) liefert beim VC -1.INF. Das zugewiesen an einen int liefert 0. Deshalb ist mir der Fehler nicht direkt aufgefallen.



  • HumeSikkins schrieb:

    log(0)/log(10) liefert beim VC -1.INF. Das zugewiesen an einen int liefert 0. Deshalb ist mir der Fehler nicht direkt aufgefallen.

    Oh, dann entschuldige bitte. Diese Lösung ist demnach korrekt. div wird damit nämlich zu 1 und damit läuft die while-Schleife einmal und es kommt genau die Ziffer 0 raus. Die Lösung gefällt mir dann wohl am besten, weil sie ohne Behandlung des Spezialfalls auskommt.

    MfG Jester



  • @Jester
    Ne, ne. Du hast schon recht. Das die Zuweisung von INF an int 0 liefert, ist imo keinesfalls garantiert. Der gcc 3.3.2 liefert z.B. INT_MIN nicht 0.



  • @hume
    ich gebs auf.. du scheinst dich irgendwie immer gleich "leicht" angegriffen zu fühlen, wenn mal einer was gegen deine lösungbeispiele sagt.. es mag für dich zwar unvorstellbar sein aber es soll auch leute geben, die mit c++ anfangen und denen eine einfache lösung vielleicht lieber ist..
    (ja, es gibt tätsächlich

    arme Anfänger

    die nicht, wie du, von anfang an perfekt waren)

    Was ist an den Lösungen von mir so furchtbar kompliziert, dass sie arme Anfänger nicht nur nicht verstehen können, sondern scheinbar ihnen auch jede Möglichkeit nimmt, Verständnisprobleme mittels Rückfragen zu klären?

    klar könnte man das mittels rücksprache klären.. aber wenn hier jemand nach einer lösung fragt, sollte man ihm eine lösung geben und nicht neue probleme schaffen..

    Zitat:
    die frage ist, was für einen anfänger leichter zu verstehen ist..

    Nein. Die Frage ist:
    Zitat:
    Wie kann ich aus Einer Zahl die Ziffern (Einer, Zehner...) rauspicken?

    nein, die frage ist:
    Wie kann ich aus Einer Zahl die Ziffern (Einer, Zehner...) rauspicken, mit einer lösung bei der ich nicht wieder neue probleme bekomme..

    Also kurz: Wo ist eigentlich dein Problem?

    im moment hab ich keins.. wenn ich eins habe, bist du der erste der es erfährt 🙂



  • Blobb du darfst nicht von dir auf andere schließen, es gibt viele Menschen die
    gerne wissen wollen wie etwas geht und nicht nur wie man es löst. Da sind humes
    Beispiele doch ideal. Und nur weil sie für dich schwer verständlich sind, weshalb
    sollte der Threadersteller sie nicht verstehen, wenn er etwas mathematisches
    Verständnis besitzt. Die Operatiren wie Modulo-Division (%) kann er ja in seinem
    Buch nachschlagen falls er sie nicht kennen sollte.
    Diese Beispiele sind abgesehen vllt. vom logarithmus einfache Mathematik und so
    etwas jdm nicht zuzutrauen ist ja schon fast eine Beleidigung.



  • der blobb schrieb:

    es mag für dich zwar unvorstellbar sein aber es soll auch leute geben, die mit c++ anfangen und denen eine einfache lösung vielleicht lieber ist..

    das stimmt. Aber wir sind hier nicht in einem: "Anfänger sucht simple Lösung Forum", sondern hier geht es um C++.

    Warum sollte man also nicht auch gute Möglichkeiten angeben - vielleicht hilft das dem OP nicht, aber vielleicht hilft es anderen Leuten. Schliesslich lesen ja viele Leute mit.

    klar könnte man das mittels rücksprache klären.. aber wenn hier jemand nach einer lösung fragt, sollte man ihm eine lösung geben und nicht neue probleme schaffen..

    Nur leider lernt der Anfänger so nix.
    Woher soll er wissen, dass man es besser machen kann, wenn er immer nur die simpelste Lösung als Antwort bekommt.

    Er muss ja nicht die komplizierteste nehmen - er kann nachfragen wenn er sie verstehen will. Aber wenn nicht, nimmt er eine der anderen Lösungen die ihm angeboten worden sind.



  • @der blobb
    Warum beantwortest du nicht einfach mal meine Frage, statt mir jetzt irgendwelche Unverschämtheiten in den Mund zu legen?

    *Was* ist an meiner Lösung kompliziert?

    Und wenn du Komplexität so gut erkennen kannst:
    *Warum* zeigst du nicht eine einfachere Lösung?

    Die erste Frage habe ich schon mehrfach gestellt. Die zweite stand letztlich bereits in meinem ersten Beitrag, in dem ich ja bereits darauf hingewiesen habe, dass ich auf der Suche nach besseren Lösungen bin.

    Kritik ist immer ok. Nur wenn du Kritik übst, dann wäre es nett, wenn du *konkret* werden würdest.

    klar könnte man das mittels rücksprache klären.. aber wenn hier jemand nach einer lösung fragt, sollte man ihm eine lösung geben und nicht neue probleme schaffen..

    Da ich eben gerade nicht perfekt bin, habe ich auch nicht immer die richtige Lösung(tm) auf Lager. Ich kann nur *versuchen* mit meinen Ideen zu helfen.
    Das klappt mal mehr und mal weniger gut. Das ich hier aber "neue Probleme" geschaffen habe, war und ist mir nicht bewusst.

    Wie kann ich aus Einer Zahl die Ziffern (Einer, Zehner...) rauspicken, mit einer lösung bei der ich nicht wieder neue probleme bekomme..

    Wie will man diese Frage beantworten ohne den Kontext des Problems sowie den genauen Kentnissstand (?) des OPs zu kennen?

    Ich persönlich finde es etwas schade, dass du mich kritisierst, mir aber nicht erklären willst warum genau und mir damit die Möglichkeit nimmst dazu Stellung zu nehmen.



  • Wenn man die Lösungen vom Kenntnisstand (;)) des OPs abhängig macht, muss man
    a) wissen, was der OP kann
    b) wissen, das der OP immer denselben Kenntnisstand behalten will.

    Man kann hier nachfragen, wenn man etwas nicht versteht, das ist ja das Gute an einem Forum 😉
    Außerdem bringt es für den OP Vorteile, wenn er auch *anständige* Lösungen, die eben manchmal *komplex* sind, kennen lernt.
    Er will sich idR ja weiterentwickeln, oder?


Anmelden zum Antworten