利用while或者for循环计算n!的值。
时间: 2024-09-23 10:13:47 浏览: 66
利用`while`或`for`循环来计算阶乘(n!)是一种常见的算法应用。这里我会给出一个基本的例子,展示如何使用循环结构计算给定数字n的阶乘。
对于`while`循环:
```python
def factorial_while(n):
fact = 1
i = 1
while i <= n:
fact *= i
i += 1
return fact
# 示例
n = 5
print(factorial_while(n)) # 输出:120
```
对于`for`循环:
```python
def factorial_for(n):
fact = 1
for i in range(1, n + 1): # 注意范围是n+1,因为range默认不包括结束值
fact *= i
return fact
# 示例
n = 5
print(factorial_for(n)) # 输出:120
```
这两个函数都能计算阶乘,但是`for`循环通常更简洁一些。记住,当n变得非常大时,这种直接迭代的方式可能会有性能问题,因为阶乘的增长非常快。
相关问题
编写程序,输入整数n(n>=0),分别利用 for 循环和 while 循环求n!程序运 图 请输人非负整数n:-5 请输入非负整数n:5 for循环:5!=120 整数1=88,整数2=16 while循环:5!=120
编写程序要求用户输入非负整数`n`,然后使用for循环和while循环计算阶乘(`n!`),对于非法输入如`-5`,提示错误并重新请求输入。这里是一个简单的Python示例:
```python
def factorial_for_loop(n):
if n < 0:
print("请输入非负整数.")
return
result = 1
for i in range(1, n + 1):
result *= i
print(f"{n}! = {result}")
def factorial_while_loop(n):
if n < 0:
print("请输入非负整数.")
return
result = 1
i = 1
while i <= n:
result *= i
i += 1
print(f"{n}! = {result}")
# 用户输入
n = int(input("请输入非负整数n: "))
if n >= 0:
print("\nfor循环:")
factorial_for_loop(n)
print("\nwhile循环:")
factorial_while_loop(n)
else:
print("无效输入")
```
在这个程序中,如果用户输入了`-5`或者其他负数,会首先显示错误消息并让用户重新输入。当输入合法时,会依次计算阶乘并展示结果。
输入整数n(n≥0),分别利用for循环,while循环、do—while循环求n!
当需要计算阶乘(n!)时,可以使用循环结构遍历从1到n的所有整数,并将它们相乘。以下是三种不同类型的循环结构如何实现这个功能:
1. **For循环**:
```python
n = int(input("请输入一个非负整数n: "))
factorial = 1
for i in range(1, n + 1):
factorial *= i
print(f"{n}! = {factorial}")
```
2. **While循环**:
```python
n = int(input("请输入一个非负整数n: "))
factorial = 1
i = 1
while i <= n:
factorial *= i
i += 1
print(f"{n}! = {factorial}")
```
3. **Do-while循环 (仅在某些支持此语法的语言中,如C/C++)**:
```c
#include <stdio.h>
int main() {
int n, i = 1, factorial = 1;
printf("请输入一个非负整数n: ");
scanf("%d", &n);
do {
factorial *= i;
i++;
} while (i <= n);
printf("%d! = %d\n", n, factorial);
return 0;
}
```
请注意,上述示例假设您正在使用支持相应循环结构的编程语言。在某些语言中,do-while循环只会在检查条件后至少执行一次。
阅读全文