zoukankan      html  css  js  c++  java
  • 递归的使用

    package com.liaojianya.chapter1;
    /**
     * This program demonstrates the use of recursion method.
     * Implementing 1 + 2 + 3 + ... + n.
     * @author LIAO JIANYA
     * 2016年7月21日
     */
    public class RecursionMethod
    {
    	public static void main(String[] args)
    	{
    		RecursionMethod rm = new RecursionMethod();
    		long start = System.currentTimeMillis();
    		int result1 = rm.addNonrecursion(100);
    		System.out.println("非递归方法计算1+2+3+...+100结果是: " + result1);
    		long end = System.currentTimeMillis(); 
    		System.out.println("非递归方法计算时间为:" + (end - start));
    		
    		start = System.currentTimeMillis();
    		int result2 = rm.addRecursion(100);
    		System.out.println("递归方法计算1+2+3+...+100结果是: " + result2);
    		end = System.currentTimeMillis();
    		System.out.println("递归方法计算时间为:" + (end - start));
    	}
    	
    	//nonrecursion method to implement the calculation
    	public int addNonrecursion(int n)
    	{
    		int result = 0;
    		for(int i = 0; i <= n; i++)
    		{
    			result += i;
    		}
    		
    		return result;
    	}
    	
    	//recursion method to implement the calculation
    	public int addRecursion(int n)
    	{
    		if(n <= 1)
    		{
    			return n;
    		}
    		return n + addRecursion(n - 1);
    	}
    }
    

      运行结果:

    非递归方法计算1+2+3+...+100结果是: 5050
    非递归方法计算时间为:1
    递归方法计算1+2+3+...+100结果是: 5050
    递归方法计算时间为:0
    

      分析:递归通过对方法本身的压栈和出栈的方式,将每一层的结果逐级返回。并且递归一定要有终止条件,否则会出现死循环。

  • 相关阅读:
    2012-2013年度大总结
    [每日一题] 11gOCP 1z0-052 :2013-08-31 数据库的存储结构....................................................A8
    Oracle约束操作
    几道字典树题目
    1032
    uva 10718 Bit Mask(贪心)
    找工作笔试面试那些事儿(2)---内存管理那些事
    汉语-词语:结构
    汉语-词语:形式
    汉语-词语:方向
  • 原文地址:https://www.cnblogs.com/Andya/p/5692960.html
Copyright © 2011-2022 走看看