算法导论——计算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