2013-03-13 93 views
-1

我需要写一个方法,将采取一个基地,并将其提高到任何整数的力量,积极或消极。可以假定基数不为0.爪哇指数法

在该方法中,我需要调用递归方法并使用它。

这里是以前的递归方法,我需要使用:

public static double nonNegInt(double base, int pow) 
{ 
    if (pow == 0) 
    return 1; 
    else 
    return base * nonNegInt(base,pow-1); 
} 

所以我的问题是,有人可以请帮助或告诉我怎么写我需要的方法?

我知道当前的方法很好,但我需要用另一种方法调用它。当我这样做时,我得到一个运行时错误

+0

那么你的问题到底是什么? – NPE 2013-03-13 18:20:00

+0

_sniff_,_sniff_这味道就像做作业... – 2013-03-13 18:22:08

+0

我需要帮助制作方法,我在编码方面相当新 – user1729448 2013-03-13 18:22:11

回答

0

你的方法是一个好的开始,但你需要处理负指数,如你的要求所述。趁x^(-n) = 1.0/x^n的事实。

0

这是你如何处理负值太:

public static double nonNegInt(double base, int pow) 
{ 
    if (pow == 0) 
     return 1; 
    else if(pow < 0) 
     return (1/nonNegInt(base, -pow)); 
    else 
     return base * nonNegInt(base,pow-1); 
} 

运行它:

public static void main(String args[]) 
{ 
    double result = nonNegInt(4,-1); 
    System.out.println(result); //Will print 0.25 
} 

当然,你应该给它一个有意义的名字,因为现在它确实处理负数的情况。