Java练习21:递归⽅法求n!递归:
(1)明确要⼲什么
例:求n!的阶乘
//计算n的阶乘
int f(int n){
}
(2)到递归的结束条件
要出参数为什么时,递归结束,之后可以直接把结果返回
n=1时,1!=1
//计算n的阶乘(n>0)
public static int f(int n) {
if(n==1) {
return 1;
}
n=2时,2!=2*1
因此把n=1和n=2的情况合并
//计算n的阶乘(n>0)
public static int f(int n) {
if(n<=2) {
return n;
}
(3)缩⼩参数范围,⾃⼰调⽤⾃⼰
到原函数的等价关系式:
f(n)=f(n-1)*n
从⽽使范围从n变成n-1
public class Test1 {
public static void main(String[] args) { Scanner cin=new Scanner(System.in); System.out.println("请输⼊n:");
nextint()方法int Int();
int x=f(n);
System.out.println(x);
}
//计算n的阶乘(n>0)
public static int f(int n) {
if(n<=2) {
return n;
}
return f(n-1)*n;
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论