Thread RDW #B - Raetsel der Woche Nummer B
(25 answers)
Opened by esskar at 2004-12-21 15:11
RDW #B - Raetsel der Woche Nummer B
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Regeln: * Bitte nicht vor Ablauf der ersten 72 Stunden ( = drei Tage ) nach ~~~~~~~ Veroeffentlichung Hinweise (Spoiler) oder Loesungen veroeffent- lichen! * Wenn diese Zeit abgelaufen ist, werde ich einen Thread mit passen- dem Titel erstellen, in dem die Loesungen gepostet werden und dis- kutiert werden koennen. * Die Loesungen sollten nicht nur gepostet, sondern auch an mich ge- mailt werden, damit ich sie testen, "bewerten" und zusammenfassen kann. Die Adrese dafuer lautet: esskar <---AT---> perl <---MINUS---> community <---DOT---> de Im Betreff sollte 'RDW' und die Nummer des Raetsels stehen. Hilf- reich waere neben dem Quellcode der Username im Forum sowie Perl- und OS-Version, falls Du diese kennst. * Verstaendnisfragen duerfen in diesem Thread gestellt werden, aber Tipps und (Teil-) Loesungen sind hier unerwuenscht. * Ich werde die eingeschickten Programme im Netz zur Verfuegung stellen, so dass gerade lange Quellcodes nicht (komplett) gepostet werden muessen. * Zur Verwendung von Modulen: Ich moechte diese nicht generell aus- schliessen, aber wenn quasi die komplette Aufgabe durch die Ver- wendung eines Moduls ersetzt werden kann, ist dies vielleicht nicht der Sinn der Aufgabe gewesen. Aufgabe: Mit großen Zahlen rechnen ~~~~~~~~ (Dieser Vorschlag stammt von mir, Fragen bitte an mich richten =) Schreibe ein Package Rdw::BigInt, das Lange Zahlen darstellen kann. Hier die Signatur des Packages: Code: (dl
)
1
Natürlich dürfen auch andere Funktionen vorhanden sein; Alle Funktion sollten im Erfolg Fall, $self zurück geben; ansonsten undef. Beispiel 1: my $bigint1 = Rdw::BigInt->new("10"); my $bigint2 = $bigint1->add("5"); print $bigint1->get_data(); # "15" print $bigint2->get_data(); # "15" $bigint->add($bigint2); print $bigint1->get_data(); # "30" Beispiel 2: my $bigint = Rdw::BigInt->new(); $bigint->set("6541831546313468413216810316864"); $bigint->add("65464540"); print $bigint->get_data(); # "6541831546313468413216875781404" Beispiel 3: my $bigint = Rdw::BigInt->new(); $bigint->add("100"); print $bigint->get_data(); # "100" Dieses Rätsel ist Vorläufer für das nächste Rätsel. :) Viel Spass. \n\n <!--EDIT|esskar|1103640220--> |