`

递归的简单例子

    博客分类:
  • Java
阅读更多

输出如下序列:1 3 6 10 15 21 28 36 45 55 ,观察规律,可以写出如下代码(可以使用递归,也可以不使用):

 

public class RecursionExample 
{
	public static void main(String[] args)
	{	
		//方法一
//		int sum = 0;
//		for(int i=0; i<10; i++)
//		{
//			sum = sum + i + 1;
//			System.out.print(sum + "  ");
//		}
//		System.out.println();
		
		//方法二
//		int Size = 10;
//		int[] a = new int[Size];
//		a[0] = 1;
//		for(int i=1; i<a.length; i++)
//			a[i] = a[i-1] + i + 1;
//		for(int i=0; i<a.length; i++)
//			System.out.print(a[i] + "  ");
//		System.out.println();
		
		//方法三:使用递归,输出所有结果,可把下面Compute()方法中的输出注释掉
//		int N = 10;
//		for(int i=0; i<N; i++)
//			System.out.print(Compute(i+1) + "  ");
//		System.out.println();

		//方便调试、跟踪,也便于理解
		int result = Compute(5);
		System.out.println("The result is " + result);
	} 
	
	public static int Compute(int n)
	{
		System.out.println("Entering : n=" + n);
		if(n == 1)
		{
			System.out.println("Returning 1");
			return 1;
		}
		else
		{
			int temp = n + Compute(n-1);
			System.out.println("Returning " + temp);
			return temp;
		}
	}
}

 

 

输出结果如下:

 

Entering : n=5
Entering : n=4
Entering : n=3
Entering : n=2
Entering : n=1
Returning 1
Returning 3
Returning 6
Returning 10
Returning 15
The result is 15

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics