package test; public class Miyunsuan { public static void main(String[] args) { System.out.println(pow2(2,4)); } /** * 普通遞歸算法,依次遞乘 * @param x * @param y * @return */ public static long pow1(int x, int y){ if(y == 1){ return x; } return x*pow1(x,y-1); } /** * 高效遞歸算法(減小了乘法的次數) * @param x * @param y * @return */ public static long pow2(int x, int y){ if(y == 0){ return 1; } if(y == 1){ return x; } if(y%2 == 0){ return pow2(x*x,y/2); }else{ return pow2(x*x,y/2)*x; } } }
高效遞歸算法的分析以下
java