用java递归算法求一个数字的阶乘

用java递归算法求一个数字的阶乘,第1张

1、采用自顶向上的递归方法,代码如下:

import java.util.Scanner

public class Test {

@SuppressWarnings("resource")

public static void main(String[] args) {

// 从控制台输入一个整数

Scanner in = new Scanner(System.in)

int b = in.nextInt()

// 声明一个Test对象,调用cal方法获得结果

Test test = new Test()

long a = test.cal(b)

System.out.println(a)

}

// 通过递归掉调用最终返回结果

public long cal(int number) {

// 如果数字为1,则直接返回

if (number == 1) 液卜{

return 1

} else {// 否则递归求值

return number * cal(number - 1)

}

}

}

2、递归方法:

递归算法是把问题闹基穗转化为规模缩小了的同类问题的子问题。然后递归调用函数(或过程)来表示问题的解。一个过程(或函数)直接或间锋答接调用自己本身,这种过程(或函数)叫递归过程(或函数).

3、特点:

(1) 递归就是在过程或函数里调用自身。

(2) 在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口。

(3) 递归算法解题通常显得很简洁,但递归算法解题的运行效率较低。所以一般不提倡用递归算法设计程序。

(4) 在递归调用的过程当中系统为每一层的返回点、局部量等开辟了栈来存储。递归次数过多容易造成栈溢出等。所以一般不提倡用递归算法设计程序。

1、首先在电脑打开eclipse软件,创建Scanner对象。

2、然后输出信息,请求用户输入要输入计算的阶乘数。代码:System.out.println("请输入要计算的阶乘数:")

3、然后创建num接受键盘输入的信息。再创建n,sum。

4、然后创建for语句,进行计算阶乘。

5、然后在最后,输出所算的阶乘结果迹氏。代码:System.out.println(n+"的阶乘为"+sum)

6、然后尺州岩再点击程序运行按钮。在下面的窗口就可以看到陵御运行结果。

按照你的要求坦灶拆编写的让枣n的阶乘的Java程序如辩拆下

public class Factorial{

public int foo(int x){

if(x==0 || x==1){

return 1

}else{

return x*foo(x-1)

}

}

public static void main(String[] args){

int n=6

Factorial f=new Factorial()

System.out.println(f.foo(n))

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12311993.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-22
下一篇2023-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存