5、分别使用for循环和递归函数求n!的值,n的值从键盘输入。(参考P101页阶乘递归)。 6、分别使用for循环和递归函数求1+2+3+…+n的值,n的值从键盘输入。(参考教材P67页思考题3和P101页阶乘递归) 7、分别使用 for 循环和递归函数求r,n的值从键盘输入,若r未给值则默认值为10。(参考教材P96页例5.6和P109页思考题5)
时间: 2023-11-22 17:54:00 浏览: 69
5、使用for循环求n!的值:
```python
n = int(input("请输入n的值:"))
factorial = 1
for i in range(1, n+1):
factorial *= i
print("%d! = %d" % (n, factorial))
```
使用递归函数求n!的值:
```python
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
n = int(input("请输入n的值:"))
print("%d! = %d" % (n, factorial(n)))
```
6、使用for循环求1+2+3+...+n的值:
```python
n = int(input("请输入n的值:"))
sum = 0
for i in range(1, n+1):
sum += i
print("1+2+3+...+%d = %d" % (n, sum))
```
使用递归函数求1+2+3+...+n的值:
```python
def sum(n):
if n == 1:
return 1
else:
return n + sum(n-1)
n = int(input("请输入n的值:"))
print("1+2+3+...+%d = %d" % (n, sum(n)))
```
7、使用for循环求r:
```python
n = int(input("请输入n的值:"))
r = 10
if r > n:
r = n
result = 1
for i in range(n, n-r, -1):
result *= i
print("%d的后%d个数的乘积为:%d" % (n, r, result))
```
使用递归函数求r:
```python
def product(n, r=10):
if r == 0:
return 1
else:
return n * product(n-1, r-1)
n = int(input("请输入n的值:"))
r = int(input("请输入r的值(不输入默认为10):") or "10")
if r > n:
r = n
result = product(n, r)
print("%d的后%d个数的乘积为:%d" % (n, r, result))
```
阅读全文