在Java中使用递归方法求指数

在Java中使用递归方法求指数,java,recursion,Java,Recursion,我必须建立一个递归方法,它接受一个双x,int n,并返回x^n。起初,我打算做这样的事情 public static double power(double x, int n){ if(n < 1){ return 1; }else{ double total = x; for(int i = 0; i < n-1; i++){ total = x*x; power(to

我必须建立一个递归方法,它接受一个双x,int n,并返回x^n。起初,我打算做这样的事情

public static double power(double x, int n){
    if(n < 1){
        return 1;
    }else{
        double total = x;
        for(int i = 0; i < n-1; i++){
            total = x*x;
            power(total,x);
    }
  }
公共静态双电源(双x,整数n){
if(n<1){
返回1;
}否则{
双倍总数=x;
对于(int i=0;i

但在问题中,它说“这个操作的递归定义是x^n=x·x^n−1.“我对Java非常陌生,这种方式似乎不像我简单地做x*x^n-1那样是递归的。我对Java非常陌生,所以可能我只是感到困惑,但我只是想澄清一下这与递归方法的关系。

这是我能找到的最简单的方式:

public static double power(double x, int n){
    if(n < 1){
        return 1;
    }else{
       return x * power(x, n-1);
    }
}
公共静态双电源(双x,整数n){
if(n<1){
返回1;
}否则{
返回x*功率(x,n-1);
}
}
这是一个解决方案:

public static double power(double x, double n){
            if(n <= 1)
                return x;
            return x*power(x,n-1);
}
公共静态双电源(双x,双n){

如果(n)那么如何计算x^(n-1)?它不是x*x,比n少1倍吗?我想这就是我在for循环中所做的。@user3769402注意我的回答啊,我总是忘记我可以在return语句中调用函数。我习惯于python,所以我仍然在试图找出我能做什么和不能做什么。@user3769402:)祝你好运。这是python上的函数:它不被认为是递归的吗?因为我在方法中调用了该方法,即使它在for循环中?是的,这是真的,但是你正试图通过使用调用该方法的for循环来用递归技术解决问题。如果任何答案都是正确的,请投票作为正确答案
for(int i = 0;i<10;i++) //for loop
{
            System.out.print(i);
}
public void print(int i) // recursive, call this method like so: print(0);
{
    if(i<10)
    {
        System.out.println(i);
        print(++i);
    }
}