在Java中计算某个整数的阶乘,如n!=n*(n-1)*(n-2).....4*3*2*1,n的值从控制台录入。
时间: 2023-05-23 17:03:16 浏览: 79
可以使用递归或循环,以下是使用递归的 Java 代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int result = factorial(n);
System.out.println(n + "的阶乘是:" + result);
}
public static int factorial(int n) {
if (n == 1 || n == 0) {
return 1;
} else {
return n * factorial(n - 1);
}
}
}
相关问题
在Java中计算某个整数的阶乘,如n!=n*(n-1)(n-2).....4321,n的值从控制台录入。,使用循环
可以使用for循环实现计算整数n的阶乘,代码如下:
```
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
int factorial = 1;
for (int i = n; i > 0; i--) {
factorial *= i;
}
System.out.println(n + "! = " + factorial);
}
}
```
例如,如果在控制台上输入5,则输出结果为:5! = 120
用java求满足1+2!+3!……+n!<=9999的最大整数n
在Java中,我们可以使用循环和递归来计算阶乘并检查累加是否超过给定的限制9999。首先,我们需要一个函数来计算阶乘:
```java
public static int factorial(int n) {
if (n == 0 || n == 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
```
然后,我们遍历从1到某个值`i`,将所有小于等于`i`的阶乘相加,直到累加结果超过9999为止:
```java
int maxN = 0;
for (int i = 1; ; i++) {
long sum = 0;
for (int j = 1; j <= i; j++) {
sum += factorial(j);
}
if (sum > 9999) {
break;
} else {
maxN = i;
}
}
maxN
```
在这个过程中,`maxN`就会保存满足条件的最大整数。
阅读全文