RosettaCodeData/Task/Exponentiation-operator/Zkl/exponentiation-operator-1.zkl
2017-09-25 22:28:19 +02:00

16 lines
280 B
Text

fcn pow(n,exp){
reg v;
if(n.isType(1)){ // Int
if (exp<0) return(if(n*n!=1) 0 else (if(exp.isOdd) n else 1));
v=1;
}else{
if(exp<0){ n=1.0/n; exp=-exp; }
v=1.0;
}
while(exp>0){
if(exp.isOdd) v*=n;
n*=n;
exp/=2;
}
v
}