Ziffern aus Zahl extrahieren? Brett vor dem Kopf?



  • 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