数学问题——用递归计算阶乘

在程序设计中,阶乘与斐波那契数列一道经常被选为递归算法的素材,因为阶乘满足下面的递归关系:

n! = n*(n-1)!

计算n的阶乘的程序很简单,具体代码如下:

package com.js.math;

import java.util.Scanner;

/**
 * 阶乘 n! = 1*2*3*4*5*...*n
 * 用递归计算阶乘
 * @author js
 *
 */
public class Factorial {
	public static void main(String[] args) {
		int n;
		System.out.println("输入一个整数n(n>0):");
		Scanner scanner = new Scanner(System.in);
		if(scanner.hasNext()){
			n =scanner.nextInt();
			System.out.println(n+"的阶乘为:"+factorial(n));
		}
	}
	public static int factorial(int n){
		int i;
		if(n<0){
			return 1;
		}
		if(1==n){
			return 1;
		}
		else {
			return n*factorial(n-1);
		}
	}
}


你可能感兴趣的:(algorithm,Practice,Java算法之路)