关于Java编写a的n次方的问题

本人是菜鸟,没事研究,想写一个方法,接受两个整数作为参数x和n,返回结果为a的n次方,比如inta=namePow(2,3);知道有Math.pow()的数学方法,前两天... 本人是菜鸟,没事研究,想写一个方法,接受两个整数作为参数x和n,返回结果为a的n次方,比如int a=namePow(2,3);
知道有Math.pow()的数学方法,前两天看到有一个关于if语句的递归方法,就是在方法中调用自己,达到计数循环的作用,不知道能不能用这种方法来编写a 的N次方。一时钻了牛角尖,想不明白求各位解答。
展开
 我来答
百度网友e215267
2014-02-22 · 超过17用户采纳过TA的回答
知道答主
回答量:54
采纳率:0%
帮助的人:30.6万
展开全部
int pow(int a, int n)
{
if(n == 1)
return a;
return a * pow(a, n - 1);
}
这样应该就可以,所有的循环都可以写成递归,但很多问题都不适合用递归实现
某些情况下,递归算法更容易写出来,我们才用递归,但如果用循环更容易实现,就没必要用递归了,因为函数的反复调用也要占用很多的资源。
fuhaiwei
2014-02-22 · TA获得超过3409个赞
知道大有可为答主
回答量:974
采纳率:75%
帮助的人:1386万
展开全部
public class Test {
public static void main(String[] args) {
System.out.println(pow(2, 10));
}

public static int pow(int m, int n) {
if (n == 1) {
return m;
} else {
return m * pow(m, n - 1);
}
}
}

可以啊,没事瞎研究是个好事。说明你很喜欢编程,快入门了。

追问
return m*pow(m.n-1)每计算一次怎么体现出一次方呢,也没有表达式啊
追答
public class Test {
public static void main(String[] args) {
System.out.printf("pow(2, 10) = %d\n", pow(2, 10));
}

public static int pow(int m, int n) {
if (n == 1) {
return m;
} else {
int pow = pow(m, n - 1);
System.out.printf("pow(%d, %d) = %d\n", m, n - 1, pow);
return m * pow;
}
}
}

递归对初学者来说,是最难理解的。观察一下输出吧。

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式