java30haoxuesheng
java30haoxuesheng
采纳率0%
2017-03-13 23:26 阅读 866

在线等回答,在递归计算java的阶乘程序中,结果是如何算出来的?

在线等回答,在递归计算java的阶乘程序中,结果是如何算出来的?要详细的步骤

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

4条回答 默认 最新

  • caozhy 从今以后生命中的每一秒都属于我爱的人 2017-03-13 23:28

    import java.util.Scanner;

    public class Recursion {
    public static int Factorial(int n) {
    if (n < 0) {
    System.out.println("无效输入,请重新输入!");
    return 0;
    } else if (n == 1 || n == 0) {
    return 1;
    } else
    return n * Factorial(n - 1);
    }

    public static void main(String[] args) {
        System.out.println("input an integer: ");
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        System.out.println("the factorial of "+n+" is "+Factorial(n));
    }
    

    }

    比如计算5!
    5!=5*4!=5*4*3!=5*4*3*2!=5*4*3*2*1!
    而如果n=1,返回1
    所以5*4*3*2*1!=5*4*3*2*1

    点赞 评论 复制链接分享
  • wojiushiwo945you 毕小宝 2017-03-14 01:05

    就是递归的方式,但是递归有一个问题就是存在效率问题,而且当计算的值过大的时候,要考虑到边界,可能出现long整型溢出的情况。

    点赞 评论 复制链接分享
  • HackAge4619 写给初学者的几封信 2017-03-14 01:13

    计算阶乘最简单的思路

    double fac = 1;
            for ( i = 1; i <= num; i++) {
    
                fac *= i;
    
            }
    
    点赞 评论 复制链接分享
  • shen_wei shen_wei 2017-03-14 01:34

相关推荐