java递归求和 1 n_Java练习>递归求和>>使用递归计算1-n之间的...

案例:

package DiGui;

/*

练习:

使用递归计算1-n之间的和

*/

public class Demo01Sum {

public static void main(String[] args) {

int s = sum(3);

System.out.println(s);

}

/*

定义一个方法,使用递归计算1-n之间的和

1+2+3+4+...+n

n+(n-1)+(n-2)+(n-3)+...+1

已知:

最大值:n

最小值:1

使用递归必须明确:

1.递归的结束条件

获取到1的时候结束

2.递归的目的

获取下一个被加的数字(n-1)

*/

public static int sum(int n){

//获取到1的时候结束

if (n == 1){

return 1;

}

//获取下一个被加数字(n-1)

return n + sum(n - 1);

}

}

运行结果:

6

递归原理分析:

??? 首先程序执行的是:入口main方法压栈执行(调用了sum方法);

??? 接着sum方法进行压栈执行(传入n=3,执行判断语句,n!=3,执行return 3+sum(3-1) ,再次调用sum方法);

??? 依次类推......

??? 直到调用sum方法传入n=1时:

??????? if语句n=1成立,执行return 1,1进行返回到方法调用处(上一个sum方法)进行相加计算,直到返回最底层sum方法,计算完毕后,出栈。

20190811103638256.jpg

?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值