Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Algorytm Potęgowania
Vengeance
post
Post #1





Grupa: Zarejestrowani
Postów: 657
Pomógł: 2
Dołączył: 15.08.2003
Skąd: Łódź

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


Kod
<?php
echo potega();
function potega()
{
  global $zmienna;
  static $wynik=1;
  static $x = 4;
  static $k = 10;
  if($k<>0)
  {
     if(is_int($k/2))
     {
        $k /= 2;
        $x *= $x;
     }
     else
     {
        $wynik *= $x;
        $k--;
     }
     potega();
  }
  else
     return (string)$wynik;
}
?>


Jest to rekurencyjna funkcja do potęgowania napisana wg. jakiegoś tam algorytmu (było takie zadanie na jakieś olimpiadzie czy coś aby taką napisać).

Teraz pytanie. Jak to przerobić abym mógł przekazać podstawe i wykładnik jako parametry funkcji ? Bo przy:
Kod
static $x = $param1;


php robi error o zły T_VARIABLE.

PS> do nabijaczy postów ;] wiem, że istnieje funkcja pow()

Ten post edytował Vengeance 13.08.2004, 01:31:18
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
darkspirit
post
Post #2





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 13.08.2004
Skąd: Łódź

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


Cytat(DeyV @ 2004-08-13 07:26:25)
a dokładniej mówiąc, np. tak? (bez żadnej rekurencji...)
[...]
@Orson: zazwyczaj na olimpiadach nie ma podanego z góry algorytmu, tak więc wszystko zależy od piszącego, chyba że... podany jest sposób przesyłania parametrów do funkcji.


To nie olimpiada tylko Matura z infy (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

# znak `nalezy` zostal zastapiony e
[...]
Specyfikacja problemu:
Dane a - podstawa potęgi,n - wykładnik potęgi dla neN+(n nalezy do naturalnych dod.),aeR\{0}
Wyniki: wynik - wartosc potegi o podstawie a i wykładnikun, wynik eR
Zmienne pomocnicze: x,k

krok 1. nadaj wartosci zmiennym: zmiennej wynik 1,zmiennej x wartosc a zmiennej k wartosc n
krok2. dopóki k!=0,powtarzaj krok 3
krok3. jesli k jest liczba nieparzystą, to wynik pomnóź przez x, zaś k zmiejsz o 1, w przeciwnym przypadku k podziel przez 2, zaś x pomnóż przez x
krok4. wypisz wartosc wynik

Wykonaj polecenia:
a) Zapisz rekurencyjną funkcję obliczania potęgi aN(a do entej) w wybranym przez siebie języku(pseudojęzyku) programowanie.
[...]

bye

Ten post edytował darkspirit 13.08.2004, 10:49:30
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 10.10.2025 - 07:04