crocodile2u
http://vbolshov.org.ru
Rocks
Не, не прокатит.
Брось затею со всякими функциями. используй циклы и операторы.
Не, не прокатит.
Брось затею со всякими функциями. используй циклы и операторы.

аа......Автор оригинала: crocodile2u
Rocks
Да тебе же уже написал алгоритм kruglov...
Rocks, кстати, если в Яндексе набрать "возведение в степень" -- это будет третьей ссылкой в результатах...http://algolist.manual.ru/maths/count_fast/fast_exp.php
Циклами , вроде помассивнее выглядит...function step ($a,$k) {
if (!$k) return 1 ;
else { $x = step ($a,$k>>1) ;
return (($k&1)?$a:1)*$x*$x;
}
}
$a=1.3 ;
$k = 25 ;
echo 'step: '.step($a,$k)."<br>pow: ".pow($a,$k)

function powmod($a, $k)
{
$b=1;
while ($k) {
if ($k%2==0) {
$k /= 2;
$a *= $a; // [ a = (a*a)%n; ]
} else {
$k--;
$b *= $a; // [ b = (b*a)%n; ]
}
}
return $b;
}
$A = 1.5; $k = 25;
$i = 0; $d = 0;
$not_more = 9999999999;
while ($d<1) do {
$A = $A * $A;
$i++;
if (($A > $not_more) || ($i == $k)) {
$d = 1;
}
}
//$A = res
Это тоже хороший. Очень хороший код. Спасибо! Если специалистам (всем присутствующим в этой теме) не понравится предложенный мною вариант, остановлюсь на вашем.Автор оригинала: Andreika
С фукцией довольно изяшшно получается Циклами , вроде помассивнее выглядит...
PHP:function powmod($a, $k) { $b=1; while ($k) { if ($k%2==0) { $k /= 2; $a *= $a; // [ a = (a*a)%n; ] } else { $k--; $b *= $a; // [ b = (b*a)%n; ] } } return $b; }
задача на сообразительность
недопустимо выполнять k умножений
Мда...простая задачка на сообразительность
Тут-то -- дело не в заманчивости, а в сообразительности.выглядит куда заманчивее
) - остаётся
Ибо оба этих понятия не являются взаимоисключающими
Идеальный вариант - представить оба варианта, или же только O(ln k), указав при этом на "огрех" задания и возможность решить его более примитивным способом 
Не-а.знаниями (в данном случае - это в общем-то тоже сообразительность