Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Hardcorowa matma i php, 8^10000
NuLL
post
Post #1





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

Ostrzeżenie: (0%)
-----


Hej,

Mam do rozwiazana dwa dziwne problemy w php i nie mam pojecia jak je ugrysc. W php jest kalkulator binarny a ja nie moge go uzysc.

1) 8 do potegi 10000 (IMG:http://forum.php.pl/style_emoticons/default/blink.gif)
2) Dodawanie swoch 1000 cyfrowych liczb (IMG:http://forum.php.pl/style_emoticons/default/aarambo.gif)

Bede wdzieczny za pomoc w dowolnym wypadku (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Nie mam zielonego pojecia jak ugrysc ten cokolwiek dziwny jak na php problem. Liczby w drugim sa wczytywanie jako stringi znak po znaku. Kombinowalem z tablicami ale jakos slabo to szlo.

Any ideas ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mike
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Cytat(NuLL @ 2006-03-06 22:44:25)
2) Dodawanie swoch 1000 cyfrowych liczb  (IMG:http://forum.php.pl/style_emoticons/default/aarambo.gif)

  1. <?php
  2.  
  3. //$str1 = '12345678912345678912345678912345678912345678912345678912345678912345678912345678
    912345678912345678912345678912345678912345678912345678912345678912345678912345678
    912345678912345678912345678912345678912345678912345678912345678912345678912345678
    912345678912345678912345678912345678912345678912345678912345678912345678912345678
    912345678912345678912345678912345678912345678912345678912345678912345678912345678
    912345678912345678912345678912345678912345678912345678912345678912345678912345678
    912345678912345678912345678912345678912345678912345678912345678912345678912345678
    912345678912345678912345678912345678912345678912345678912345678912345678912345678
    912345678912345678912345678912345678912345678912345678912345678912345678912345678
    912345678912345678912345678912345678912345678912345678912345678912345678912345678
    912345678912345678912345678912345678912345678912345678912345678912345678912345678
    912345678912345678912345678912345678912345678912345678912345678912345678912345678
    91234567891234567891234567891';
  4. //$str2 = '12345678912345678912345678912345678912345678912345678912345678912345678912345678
    912345678912345678912345678912345678912345678912345678912345678912345678912345678
    912345678912345678912345678912345678912345678912345678912345678912345678912345678
    912345678912345678912345678912345678912345678912345678912345678912345678912345678
    912345678912345678912345678912345678912345678912345678912345678912345678912345678
    912345678912345678912345678912345678912345678912345678912345678912345678912345678
    912345678912345678912345678912345678912345678912345678912345678912345678912345678
    912345678912345678912345678912345678912345678912345678912345678912345678912345678
    912345678912345678912345678912345678912345678912345678912345678912345678912345678
    912345678912345678912345678912345678912345678912345678912345678912345678912345678
    912345678912345678912345678912345678912345678912345678912345678912345678912345678
    912345678912345678912345678912345678912345678912345678912345678912345678912345678
    91234567891234567891234567891';
  5.  
  6. $str1 = '99999';
  7. $str2 = '88888';
  8.  
  9. $arrResult  = array();
  10.  
  11. $int1Count = strlen( $str1 ); // długość pierwszej liczby
  12. $int2Count = strlen( $str2 ); // długość drugiej liczby
  13.  
  14. // ilośc iteracji w pętli
  15. $intLoopCount = ( $int1Count > $int2Count ) ? $int1Count : $int2Count;
  16.  
  17. $arrResult = array_fill( 0, $intLoopCount + 1, 0 );
  18.  
  19. for( $i = ( $intLoopCount - 1 ), $j = 0; $i >= 0 ; $i--, $j++ )
  20. {
  21. $int1 = ( isset( $str1{$i} ) ) ? intval( $str1{$i} ) : 0;
  22. $int2 = ( isset( $str2{$i} ) ) ? intval( $str2{$i} ) : 0;
  23.  
  24. $intSum = $int1 + $int2;
  25.  
  26. $arrResult[ $j ] = $arrResult[ $j ] + ( $intSum % 10 );
  27.  
  28. if( $intSum >= 10 )
  29. {
  30. $arrResult[ $j + 1 ] = floor( $intSum / 10 );
  31. }
  32. }
  33.  
  34. $arrResult = array_reverse( $arrResult );
  35.  
  36. if( $arrResult[ 0 ] == 0 )
  37. {
  38. unset( $arrResult[ 0 ] );
  39. }
  40.  
  41. echo implode( '', $arrResult );
  42.  
  43. //print_r( $arrResult );
  44.  
  45. ?>


Nie wątpię, że można w kilku miejscach zoptymalizować, ale już mi sie nie chciało, bo pól na pół z palca pisane (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
~NuLL wybacz obfitośc komentarzy (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
3 Użytkowników czyta ten temat (3 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 12:30