求阶乘的编程怎么写

时间:2025-03-02 03:39:47 明星趣事

求阶乘的编程方法有多种,包括递归法和循环法。以下是几种不同编程语言的阶乘实现方法:

Python

递归法

```python

def factorial(n):

if n == 0 or n == 1:

return 1

else:

return n * factorial(n - 1)

```

循环法

```python

def factorial(n):

result = 1

for i in range(1, n + 1):

result *= i

return result

```

C语言

递归法

```c

include

long long factorial(int n) {

if (n == 0 || n == 1) {

return 1;

} else {

return n * factorial(n - 1);

}

}

int main() {

int num;

printf("请输入一个非负整数: ");

scanf("%d", &num);

printf("%d的阶乘为: %lld\n", num, factorial(num));

return 0;

}

```

循环法

```c

include

int main() {

int n, i, s = 1;

printf("输入n(n>0):\n");

scanf("%d", &n);

for (i = 1; i <= n; i++) {

s = s * i;

}

printf("%d\n", s);

return 0;

}

```

Java

递归法

```java

public class Factorial {

public static long factorial(int n) {

if (n == 0 || n == 1) {

return 1;

} else {

return n * factorial(n - 1);

}

}

public static void main(String[] args) {

int num;

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

Scanner scanner = new Scanner(System.in);

num = scanner.nextInt();

System.out.println(num + "的阶乘为: " + factorial(num));

}

}

```

循环法

```java

import java.util.Scanner;

public class Factorial {

public static long factorial(int n) {

long result = 1;

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

result *= i;

}

return result;

}

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

System.out.print("输入n(n>0): ");

int num = scanner.nextInt();

System.out.println(num + "! = " + factorial(num));

}

}

```

这些示例代码展示了如何使用递归和循环两种方法来计算阶乘。你可以根据自己的需求和编程语言选择合适的方法。