Java算法01-实现阶乘的几种基本方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java算法01-实现阶乘的⼏种基本⽅法1. 阶乘公式
n!=1×2×3×...×n
阶乘也可以⽤递归⽅式定义:
0!=1,n!=(n-1)!×n
2. 使⽤循环实现阶乘
n!=1×2×3×...×n
/**
* 1、使⽤循环实现阶乘
*/
public class Factorial {
public static int fact(int num) {
int n = 1;
// 查验输⼊错误
if (num < 0) {
System.out.println("输⼊错误,必须为正整数");
return -1;
} else {
// 循环num次
for (int i = 1; i <= num; i++) {
// 每次循环⼀次就进⾏⼀次乘法运算
n = n * i;
}
// 返回阶乘结果n
return n;
}
}
public static void main (String[] args) {
// 这⾥的fact⽅法在类Factorial中属于静态⽅法,不应该⽤类实例来访问静态成员,⽤类Factorial直接访问静态成员
int count = fact(3);
System.out.println(count);
}
}
3. 使⽤递归实现阶乘
0!=1,n!=(n-1)!×n
public class Factorial {
public static int fact(int n) {
// 验错
if (n < 0) {
System.out.print("输⼊错误,必须为正整数");
return -1;
} else if (n == 1) {
return 1;
}
// n的阶乘就等于n乘(n-1)的阶乘
return fact(n - 1) * n;
}
public static void main(String[] args) {
System.out.println(fact(3));
}
}。