java factorial函数_Java 用函数调用求阶乘 | 学步园

本文介绍了两种在Java中计算阶乘的方法:递归和循环。递归方法通过函数自身调用来计算,而循环方法则使用for循环逐个相乘。示例代码展示了如何实现这两种方法,并在主函数中获取用户输入的正整数进行计算。通过对比,读者可以理解不同方法的实现思路。
摘要由CSDN通过智能技术生成

一.  公共部分, 这里假设由用户输入数字

public class Factorial {

public static void main(String[] args) {

System.out.print("请输入一个正整数: ");

try {

BufferedReader br = new BufferedReader(new InputStreamReader(

System.in));

int a = Integer.parseInt(br.readLine());

System.out.println(String.valueOf(jieshen(a)).replace(".0", ""));

} catch (IOException e) {

e.printStackTrace();

}

}

//阶乘方法

...

}

第一种写法, 用递归调用方法

public static double jieshen(int num) {

if (num == 1)

return 1d;

else {

if(num >1){

return num * jieshen(num-1);

}

return 1d;

}

}

}

第二种写法, 用循环方式

public static double jieshen(int num) {

double result =1d;

for(int i=1;i<=num; i++) {

result = result *i;

}

return result;

}

--------------------------------

二.  另外一种写法, 用构造方法,阶乘方法不需要static 修饰

public class Factorial{

public Factorial(){};

public Factorial(int i){

System.out.println(recursion(i));

}

private int recursion(int i){

if(i<0)

return -1;

else if(i==0)

return 1;

else

return i*recursion(i-1);

}

public static void main(String[] args){

Factorial factorial=new Factorial(5); //5的阶乘

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值