《数据结构与算法》学习笔记17 递归_三角数字+阶乘

来源:互联网 发布:android java 编辑:程序博客网 时间:2024/05/30 23:03

特征:1、调用自己

2、调用自身解决更小的问题

3、在足够简单的问题层次,不需要调用,可以直接返回结果

//1+2+...+numimport java.io.*;public class triangleApp {    static int num;public static void main(String[] args) throws IOException{   System.out.println("Input a number");   num=getInt();   System.out.println(triangle(num));   }public static int triangle(int n){if(n==1)  //基值情况,终止条件return 1;else return triangle(n-1)+n;//return triangle(n-1)*n;}public static int getInt() throws IOException{InputStreamReader isr=new InputStreamReader(System.in);BufferedReader br=new BufferedReader(isr);String s=br.readLine();return Integer.parseInt(String.valueOf(s));}}

递归的销量:

每次调用,都会回到程序的开始处,参数等会存储到内存中的栈,所以比起while循环的方法,递归方式效率较低。

在大数量的数据时,销量会更低,尽量不要使用。递归只是简化了设计思路。

0 0
原创粉丝点击