/**
* Created by Luty on 2017/4/23.
* 递归的应用:计算乘方
*/
public class Involution {
public static int x=2;
public static int y=8;
public static void main(String[] args){
System.out.println(power(x,y));
}
public static int power(int x,int y){
boolean isOdd = true;
int result = 1;
if (y==1){
return x;
}
if(y%2 == 1){
y=y+1;
isOdd = false;
}
result = power(x*x,y/2);
return isOdd ? result : result/x;
}
}
计算x的y次方:
1、如果y为1,直接返回x;
2、否则计算xx的y/2次方(如果y为偶数)
3、如果y为奇数,计算xx的(y+1)/2次方,最后再/x