/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
public static int countGbl = 0;
public static double raise(double base, int exp) {
double b = base;
for (int i = 1; i < exp; i++){
countGbl += 1;
base = base * b;
}
return base;
}
public static double pow1(double base, int exp) {
if (base
== 0.0) return Double.
POSITIVE_INFINITY; else if (base == 0.0 && exp >= 0) return 0.0;
else if (exp == 1) return base;
else if (base > 0 && exp == 0) return 1.0;
else{
if (exp < 0){
base = 1.0/base;
exp = -exp;
}
if (exp % 2 == 0){
countGbl++;
return pow1(base, exp/2) * pow1(base, exp/2);
}
else {
countGbl += 2;
return pow1(base, exp/2) * pow1(base, exp/2) * base;
}
}
}
public static double pow2(double base, int exp) {
double temp = raise(base, exp/2);
double retval = temp*temp;
if (exp % 2 == 1){
countGbl++;
retval *= temp;
}
return retval;
}
public static void main
(String[] args
) {
Scanner s
= new Scanner
(System.
in);
System.
out.
println("Enter base: "); double base
= Integer.
parseInt(s.
nextLine()); System.
out.
println("Enter exp: "); int exp
= Integer.
parseInt(s.
nextLine());
System.
out.
println(pow2
(base, exp
));
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgaW50IGNvdW50R2JsID0gMDsKCgogICAgcHVibGljIHN0YXRpYyBkb3VibGUgcmFpc2UoZG91YmxlIGJhc2UsIGludCBleHApIHsKCiAgICAgICAgZG91YmxlIGIgPSBiYXNlOwoKICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8IGV4cDsgaSsrKXsKICAgICAgICAgICAgY291bnRHYmwgKz0gMTsKICAgICAgICAgICAgYmFzZSA9IGJhc2UgKiBiOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIGJhc2U7CiAgICB9CgoKICAgIHB1YmxpYyBzdGF0aWMgZG91YmxlIHBvdzEoZG91YmxlIGJhc2UsIGludCBleHApIHsKCiAgICAgICAgaWYgKGJhc2UgPT0gMC4wKSByZXR1cm4gRG91YmxlLlBPU0lUSVZFX0lORklOSVRZOwogICAgICAgIGVsc2UgaWYgKGJhc2UgPT0gMC4wICYmIGV4cCA+PSAwKSByZXR1cm4gMC4wOwogICAgICAgIGVsc2UgaWYgKGV4cCA9PSAxKSByZXR1cm4gYmFzZTsKICAgICAgICBlbHNlIGlmIChiYXNlID4gMCAmJiBleHAgPT0gMCkgcmV0dXJuIDEuMDsKICAgICAgICBlbHNlewogICAgICAgICAgICBpZiAoZXhwIDwgMCl7CiAgICAgICAgICAgICAgICBiYXNlID0gMS4wL2Jhc2U7CiAgICAgICAgICAgICAgICBleHAgPSAtZXhwOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoZXhwICUgMiA9PSAwKXsKICAgICAgICAgICAgICAgIGNvdW50R2JsKys7CiAgICAgICAgICAgICAgICByZXR1cm4gcG93MShiYXNlLCBleHAvMikgKiBwb3cxKGJhc2UsIGV4cC8yKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIGNvdW50R2JsICs9IDI7CiAgICAgICAgICAgICAgICByZXR1cm4gcG93MShiYXNlLCBleHAvMikgKiBwb3cxKGJhc2UsIGV4cC8yKSAqIGJhc2U7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgoKICAgIHB1YmxpYyBzdGF0aWMgZG91YmxlIHBvdzIoZG91YmxlIGJhc2UsIGludCBleHApIHsKICAgICAgICBkb3VibGUgdGVtcCA9IHJhaXNlKGJhc2UsIGV4cC8yKTsKICAgICAgICBkb3VibGUgcmV0dmFsID0gdGVtcCp0ZW1wOwogICAgICAgIGlmIChleHAgJSAyID09IDEpewogICAgICAgICAgICBjb3VudEdibCsrOwogICAgICAgICAgICByZXR2YWwgKj0gdGVtcDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHJldHZhbDsKICAgICAgICB9CgoKCgoKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKCiAgICAgICAgU2Nhbm5lciBzID0gbmV3IFNjYW5uZXIoU3lzdGVtLmluKTsKCiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFbnRlciBiYXNlOiAiKTsKICAgICAgICBkb3VibGUgYmFzZSA9IEludGVnZXIucGFyc2VJbnQocy5uZXh0TGluZSgpKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkVudGVyIGV4cDogIik7CiAgICAgICAgaW50IGV4cCA9IEludGVnZXIucGFyc2VJbnQocy5uZXh0TGluZSgpKTsKCiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHBvdzIoYmFzZSwgZXhwKSk7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGNvdW50R2JsKTsKCiAgICB9Cn0=