Thread Ganzzahliges Vielfaches von 2017 in der Form /^[01]+/ (14 answers)
Opened by Jigsaw at 2017-06-25 01:23

Muffi
 2017-06-26 09:49
#186742 #186742
User since
2012-07-18
1465 Artikel
BenutzerIn
[default_avatar]
Ich würds mal ungefähr so umbaun.

Code (perl): (dl )
1
2
3
4
5
6
7
8
my $number = 2017 * 2;

while (1){
    last if $number !~ /[^01]/;
    $number += 2017;
}

print $result;


Eine Zuweisung pro Schleifendurchlauf weg und eine Multiplikation.
Zudem sollte die Regex ein wenig schneller sein.

Als nächstes könnte man sich folgendes überlegen. Man checkt ja eine unglaubliche Menge an Zahlen, die man von vornherein im ganzen Block verwerfen könnte. Z.B. wenn die Zahl mit 2 beginnt, dann kann man alles wegwerfen, bis er bei 10 ist. D.h. wenn man eine 2 vorne feststellt, dann auf die 10 aufrunden, ++ so lange, bis sie wieder durch 2017 teilbar ist und dann wieder weiter.

Und wenn man das hat könnte man sich überlegen, ob sich das auch für die 2., 3., ... Ziffer rechnet.

Und dann ist man wahrscheinlich eh bei nem komplett anderen Algorithmus.
Last edited: 2017-06-26 09:55:08 +0200 (CEST)
1 + 1 = 10

View full thread Ganzzahliges Vielfaches von 2017 in der Form /^[01]+/