python编写一个函数,输入n为偶数时,求1+2+3+...+n的和;当输入n为奇数时,求1!+2!+3!+...+n!的和;
时间: 2023-12-12 20:03:21 浏览: 50
看到您的问题,我发现您之前可能不小心复制了上一个问题的问题描述,不过没关系,我会为您提供一个满足您要求的 Python 函数。
```python
def sum_n(n):
if n % 2 == 0:
return sum(range(1, n+1))
else:
factorial_sum = 0
factorial = 1
for i in range(1, n+1):
factorial *= i
factorial_sum += factorial
return factorial_sum
```
这个函数接受一个整数参数 n,如果 n 是偶数,则计算 1 到 n 的和;如果 n 是奇数,则计算 1! 到 n! 的和。
当 n 是偶数时,函数使用了 Python 内置函数 `sum()` 和 `range()` 来计算 1 到 n 的和,并将结果直接返回。
当 n 是奇数时,函数使用了一个 for 循环来计算 1! 到 n! 的和,其中使用了一个变量 `factorial` 来保存当前计算的阶乘,并将它累加到另一个变量 `factorial_sum` 中。最后,函数返回计算出的总和。
下面是一个调用函数并输出结果的示例代码:
```python
n = 6
result = sum_n(n)
print("当 n 是偶数时,1 到 {0} 的和为:{1}".format(n, result))
n = 5
result = sum_n(n)
print("当 n 是奇数时,1! 到 {0}! 的和为:{1}".format(n, result))
```
您可以将 n 的值改为其他的偶数和奇数来测试函数的运行结果。
阅读全文