递归算法实例

来源:互联网 发布:mac上面怎么装office 编辑:程序博客网 时间:2024/05/22 05:15

要点

  • 自己调用自己
  • 需要有个出口

步骤

如:求1+2+3+4+…+n
1. 方法:public static int operation(int n) {},注意返回值和参数
2. 根据提议,当值为1时表示不再递归,那么此处定义为程序出口,即:

if (n == 1) {    return 1;}
  1. 如果未到达出口,那么进行递归运算
else if (n > 1) {    return operation(n - 1) + n;}

这里注意的地方有:“operation(n - 1) + n”相当于n值加上(n-1)的累加。同理,如果是求m!(m的阶乘),可以写成“m*(m-1)!”。

代码

public class Main {    public static void main(String[] args) {        @SuppressWarnings("resource")        int n = new Scanner(System.in).nextInt();        System.out.println("方法二:" + operation(n));    }    // 递归实现1加到n    private static int operation(int n) {        if (n == 1) {            return 1;        } else if (n > 1) {            return operation1(n - 1) + n;        }        return 0;    }}
0 0
原创粉丝点击