andism88 Posted October 14, 2011 Report Share Posted October 14, 2011 Risinu vienu Euler uzdevumiem.. Uzraksīju skriptu: <?php $i=100; $a=$i*($i-1); $i=$i-2; while ($i>0){ $a=number_format(($a*$i),'0','',''); $i=$i-1; } echo array_sum(str_split($a)); ?> Bet rezultāts nepareizs, ja nomaina $i uz 10, tad viss ir ok... Paņēmu vnk echo $a un skaitlis ir bez neapaļs, lai gan pēc būtības vajadzētu būt daudz 0 galā.. Ok, ierakstīju ciklā lai izvadās rezultāts pēc katra reizinātāja un secināju ka php reizinot 690281878632192000 ar 91 izvadās 62815650955529469952 Kas atkal nav apaļš, lai gan būtu jabūt vismaz 3 nullēm galā.. Hmm radās jautājums kā php uzvedās ar lielajiem skaitļiem, un kā atrisināt šo problēmu...?? Atceros ka risināju ko līdzīgu ar kāpināšanu un viss bija ok.. Quote Link to comment Share on other sites More sharing options...
codez Posted October 14, 2011 Report Share Posted October 14, 2011 Tev jāizmanto kāda no garās matemātikas bibliotēkām: http://www.php.net/manual/en/book.bc.php http://us2.php.net/gmp $r=1; for($i=2;$i<=100;$i++){ $r=bcmul($r,$i); } echo $r; Quote Link to comment Share on other sites More sharing options...
andism88 Posted October 14, 2011 Author Report Share Posted October 14, 2011 oo paldies.. :) Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.