Рекурсивный алгоритм Хоара:
double power( double a, unsigned n ) {
switch( n ) {
case 0:
return 1.;
case 1:
return a;
default: {
double a2 = power( a, n / 2 );
if( n & 1 )
return a * a2 * a2;
else
return a2 * a2;
}
}
}
Степень 1000 потребует 10 умножений.
Перепишите на PASCAL.