编程语言
首页 > 编程语言> > 算法导论——计算10!

算法导论——计算10!

作者:互联网

有两种方法,递归和for循环

package com.hm.demo01;

public class Test {
	public static void main(String[] args) {
		long result=func(10);
		System.out.println(result);
	}
	
	public static long func(long n) {
		if(n==1) {
			return 1;
		}
		
		return n*func(n-1);
	}

}

 

package com.hm.demo01;

public class Test02 {
	public static void main(String[] args) {
		long result=func2(10);
		System.out.println(result);
	}
	
	public static long func2(long n) {
		long result=1;
		for(long i=1;i<=n;i++) {
			result=result*i;
		}
		return result;
	}

}

 

第一种方法,要调用10次func函数,所以在栈内存里要开辟10个内存空间

而第二种方法,只用调用1次func2函数,所以在栈内存里只要开辟一块内存就好了,

因此,第二种解法更优

 

标签:10,导论,long,算法,static,result,func,public
来源: https://www.cnblogs.com/sherryyuan/p/16062664.html