java如何用递归方法求阶乘

java 用递归方法求阶乘

一个正整数的阶乘,是所有不大于该数的正整数的积,并且0的阶乘为1,n的阶乘写作n!,由1808年基斯顿·卡曼(Christian Kramp,1760~1826)引进这个表示法。

java代码:

//用递归方法求阶乘
public class Factorial{
    public static void main(String[] args){
        int N = 5;
        for(int n = 0; n <= N; n++){
            int fact = factorial(n);
            System.out.println(n + " 的阶乘值是: " + fact);
        }
    }
    public static int factorial(int n){
        if(n < 1)
            return 1;
        return factorial(n-1) * n;
    }
}

输出:

0 的阶乘值是: 1
1 的阶乘值是: 1
2 的阶乘值是: 2
3 的阶乘值是: 6
4 的阶乘值是: 24
5 的阶乘值是: 120

Java 用递归计算1~N阶乘的值

Java中使用递归计算1~N阶乘的值

public class test {
 // 求阶乘的方法
 public static int factorial (int m) {
  if (m == 1) {
   // 这里要记住,return的是factorial方法,而不是结束执行if方法。
   return 1;
  }
  return m * factorial(m - 1);
 }

 public static void main(String[] args) {
  int n = N;
  System.out.println(factorial(n));
 }
}

Java中使用递归计算1~10阶乘的值(这里将数值代入的话更好理解)

public class test {
 // 求阶乘的方法
 public static int factorial (int m) {
  if (m == 1) {
   // 这里要记住,return的是factorial方法,而不是结束执行if方法。
   return 1;
  }
  return m * factorial(m - 1);
 }

 public static void main(String[] args) {
  int n = 10;
  System.out.println(factorial(n));
 }
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • java 递归深入理解

    一.递归函数,通俗的说就是函数本身自己调用自己... 如:n!=n(n-1)! 你定义函数f(n)=nf(n-1) 而f(n-1)又是这个定义的函数..这就是递归 二.为什么要用递归:递归的目的是简化程序设计,使程序易读 三.递归的弊端:虽然非递归函数效率高,但较难编程,可读性较差.递归函数的缺点是增加了系统开销,也就是说,每递归一次,栈内存就多占用一截 四.递归的条件:需有完成任务的语句,需满足递归的要求(减小而不是发散) 五.递归进阶: 1.用递归算n的阶乘: 分析:n!=n*(n-1)*(

  • Java递归求和1+2+3+...+n实例详解

    Java递归求和1+2+3+...+n public class Sum { public static int count(int n) { if (n > 1) { return count(n - 1) + n; } else { return n; } } public static void main(String[] args) { System.out.println(Sum.count(100)); } } 扩展学习 输入一个数: 4 10 代码: public class De

  • Java中的递归详解(用递归实现99乘法表来讲解)

    1:普通实现99乘法表太简单,是个程序员都会,实现如下: package test.ms; public class Test99 { public static void main(String[] args) { for(int i=1; i<=9;i++){ for(int j=1; j<=i; j++){ System.out.print(j+" * "+i+ " = "+(i*j) +" "); } System.out.p

  • Java算法之递归算法计算阶乘

    本文为大家分享的java算法计算阶乘,在学习Java课程时经常会遇到求阶乘问题,今天接跟大家一起探讨一下 代码如下: package com.xu.main; import java.util.Scanner; public class P9 { static long fact(int n) { if(n <= 1) { return 1; } else { return n * fact(n - 1); } } public static void main(String[] args) {

  • java如何用递归方法求阶乘

    java 用递归方法求阶乘 一个正整数的阶乘,是所有不大于该数的正整数的积,并且0的阶乘为1,n的阶乘写作n!,由1808年基斯顿·卡曼(Christian Kramp,1760-1826)引进这个表示法. java代码: //用递归方法求阶乘 public class Factorial{ public static void main(String[] args){ int N = 5; for(int n = 0; n <= N; n++){ int fact = factorial(n)

  • Java递归方法求5!的实现代码

    题目:利用递归方法求5!. 程序分析:递归公式:fn=fn_1*4! 程序设计: import java.util.Scanner; public class Ex22 { public static void main(String[] args) { Scanner s = new Scanner(System.in); int n = s.nextInt(); Ex22 tfr = new Ex22(); System.out.println(tfr.recursion(n)); } pu

  • Java中的递归方法示例介绍

    目录 递归 递归的注意事项: 案例一 递归求阶乘 不使用递归实现阶乘 使用递归实现阶乘 澳大利亚不死神兔(斐波那契数列) 使用数组实现 使用递归实现 总结 递归 方法定义本身调用方法本身的现象叫做递归 在这之前我们学的东西:例如StringBuffer.append().append().append()这个不叫递归.这个叫方法的连续调用Math.max(Math.max(a,b),c)也不是递归,那这些是什么呢?这些是方法的调用. 那什么是递归呢? 举例: 从前有座山,山里有座庙,庙里有个老和

  • Python3 实现递归求阶乘

    题目 利用递归方法求5! 程序分析 递归调用即可. def factorial(n): return n*factorial(n-1) if n>1 else 1 print(factorial(5)) 补充:python 求N的阶乘 本题要求编写程序,计算N的阶乘 输入格式: 输入在一行中给出一个正整数 N. 输出格式: 在一行中按照"product = F"的格式输出阶乘的值F,请注意等号的左右各有一个空格.题目保证计算结果不超过双精度范围. 输入样例: 5 输出样例: pr

  • C++实现LeetCode(172.求阶乘末尾零的个数)

    [LeetCode] 172. Factorial Trailing Zeroes 求阶乘末尾零的个数 Given an integer n, return the number of trailing zeroes in n!. Example 1: Input: 3 Output: 0 Explanation: 3! = 6, no trailing zero. Example 2: Input: 5 Output: 1 Explanation: 5! = 120, one trailing

  • java数学归纳法非递归求斐波那契数列的方法

    本文实例讲述了java数学归纳法非递归求斐波那契数列的方法.分享给大家供大家参考.具体如下: Integer能表示的最大值为 2147483647 大概是21.4亿,这里没有考虑溢出情况(当size为983时就会溢出)! import java.util.List; import java.util.ArrayList; /** * @author jxqlovejava * 斐波那契数列 */ public class Fibonacci { public static List<Intege

  • Java 通过位运算求一个集合的所有子集方法

    Java没有自带的求一个集合的所有子集的方法,我们可以通过集合的子集规律来求. 一个集合的所有子集等于2^该集合的长度.比如{c,b,a}的长度为3,这个集合的子集就有8个. 这句话看起来很简单,但同时也隐含着高深的哲理.其实一个集合的所有集合,和2^该集合的长度这个数字有关.比如上面的例子,{c,b,a}的长度为3,则可以用0-7表示其所有子集.如下所示,改数字所对应的位置为1,则说明我需要这个数字形成子集.从0-7的二进制表示,刚好代表完,一个长度为3,子集个数为8的所有子集. 0(000)

  • C++使用递归方法求n阶勒让德多项式完整实例

    本文实例讲述了C++使用递归方法求n阶勒让德多项式的实现方法.分享给大家供大家参考,具体如下: /* * 作 者: 刘同宾 * 完成日期:2012 年 11 月 24 日 * 版 本 号:v1.0 * 输入描述: * 问题描述: 用递归方法求n阶勒让德多项式的值.. * 程序输出: * 问题分析:略 * 算法设计:略 */ #include<iostream> using namespace std; int main() { double p(double,double); double s

  • Java实现Floyd算法求最短路径

    本文实例为大家分享了Java实现Floyd算法求最短路径的具体代码,供大家参考,具体内容如下 import java.io.FileInputStream; import java.io.FileNotFoundException; import java.util.Scanner; public class TestMainIO { /** * @param args * @throws FileNotFoundException */ public static void main(Stri

随机推荐