Ziffern aus Zahl extrahieren? Brett vor dem Kopf?



  • DirkB schrieb:

    Du teilst solange durch 10, bis der Wert kleiner 100 ist.
    Den Rest darfst du selber ausdenken.

    Mein Brett ist vlt. größer als gedacht, aber schneller als durch ein Vielfaches von 10 teilen mit anschließendem Vergleich wird's nicht mehr oder?



  • Ach, du hast ja feste 9 Stellen.
    Dann muss der Wert ja größergleich 550000000 und kleiner 560000000 sein.



  • DirkB schrieb:

    Ach, du hast ja feste 9 Stellen.
    Dann muss der Wert ja größergleich 550000000 und kleiner 560000000 sein.

    
    

    cout<<(wert/10000000 == 55)<<endl;

    😕



  • Kreuzschlitz schrieb:

    cout<<(wert/10000000 == 55)<<endl;
    

    das ist natürlich die vermutlich einfachste und schnellste Lösung.



  • Die schnellste bestimmt nicht - Division ist ziemlich teuer. Zwar kann der Compiler das bei festem Divisor durch Multiplikationen und Bitshifts ersetzen, aber die laufzeittechnisch schnellste Lösung dürfte stumpf

    if(wert >= 550000000 && wert < 560000000) {
      ...
    }
    

    sein (also so, wie DirkB es vorschlägt).



  • seldon schrieb:

    Die schnellste bestimmt nicht - Division ist ziemlich teuer.

    *arg* stimmt, da war ja was...



  • seldon schrieb:

    Die schnellste bestimmt nicht - Division ist ziemlich teuer. Zwar kann der Compiler das bei festem Divisor durch Multiplikationen und Bitshifts ersetzen, aber die laufzeittechnisch schnellste Lösung dürfte stumpf

    if(wert >= 550000000 && wert < 560000000) {
      ...
    }
    

    sein (also so, wie DirkB es vorschlägt).

    Müsste das nicht wenn korrekterweise wie folgt lauten:

    if(wert >= 550000000 && wert < 550000001) {
      ...
    }
    

    Bei eurer Variante existieren doch 10.000.000 Werte, für die die If-Abfrage immer true sein wird und nicht nur der eine 😕



  • Outsider333 schrieb:

    Bei eurer Variante existieren doch 10.000.000 Werte, für die die If-Abfrage immer true sein wird und nicht nur der eine 😕

    ist ja auch richtig. Nochmal in Ruhe die Aufgabenstellung lesen...



  • @Outsider333 Weniger Drogen sollen helfen beim Programmieren. 😃



  • Mh, wenn als Vorbedingung wirklich immer gegeben sit, dass die Zahl 9 Stellen hat und vorne die 55 sein soll, dann ist das ziemlich easy, und undynamisch.
    Komisch, dass nach sowas hier gefragt wird. (Aber ich kann das Brett vorm Kopf nachvollziehen ;))



  • Outsider333 schrieb:

    Müsste das nicht wenn korrekterweise wie folgt lauten:

    if(wert >= 550000000 && wert < 550000001) {
      ...
    }
    

    Das geht noch einfacher:

    if(wert == 550000000) {
      ...
    }
    

    😃

    Outsider333 schrieb:

    Bei eurer Variante existieren doch 10.000.000 Werte, für die die If-Abfrage immer true sein wird und nicht nur der eine 😕

    Die Aufgabe war: Finden aller 9-stelligen Zahlen, die mit 55 anfangen.


Anmelden zum Antworten