Potęgowanie w pętli

0

Witam, jak zrobić potęgowanie dwóch liczb w pętli bez użycia "pow" ?
Proszę o pomoc

0

$wynik=1;
for($i=1;$i<=$wykladnik;$i++)$wynik*=$podstawa;

0

Tak to ma wyglądać ? Ale dlaczego wypisuje mi taką liczbę "392781" zamiast "81" ?

<?php
$podstawa=3;
$wykladnik=4;
$wynik=1;
$i;
for($i=1;$i<=$wykladnik;$i++)
{
echo $wynik*=$podstawa; 
}
?>
0

Bo taki napisałeś program. Zobacz co masz w pętli wykonywane za każdym razem. Najlepiej przeczytaj sobie tyle razy, aż załapiesz.

0

wypisuje Ci kolejne potęgi tyle że nie oddzielone czyli 3,9,27,81. Przenieś echo poza pętle.

0
Markness napisał(a):

wypisuje Ci kolejne potęgi tyle że nie oddzielone czyli 3,9,27,81. Przenieś echo poza pętle.

Ok, dzięki mam

0

troche z żartem, ale wszystkie warunki zadania są spełnione
// x^y
for ($i = 0; $i < 1; $i++)
{
$wynik = exp($y*log($x));
}

jeśli potęga ma być całkowita dodatnia możesz podnosić do potęgi ze złożonością log(potega). Pokaze Ci na przykladzie:

2^12
2^1 = 2 // 0
2^2 = (2^1)^2 // 0
2^4 = (2^2)^2 // 1
2^8 = (2^4)^2 // 1

2^12 = 2^4 * 2^8

zauważ jeszcze że 12 zapisane binarnie to: 1100, czyli generalnie twój algo sprowadza się mniej więcej do czegoś takiego:

$wynik = 1; // wynik x^y
$x = 2;
$y = 12;
while ($y != 0)
{
  if ($y % 2 == 0)
    $wynik *= $x;
  $x *= $x;
  $y /= 2;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1