编写程序一个正整数的双阶乘,表示不超过这个正整数且与它有相同奇偶性的所有正整数乘积。n 的双阶乘用 n!! 表示。请问,2021!! 的最后 5 位(这里指十进制位)是多少?
时间: 2024-05-16 17:16:23 浏览: 15
根据定义,$n$ 的双阶乘可以表示为:
$n!! = n \times (n-2) \times (n-4) \times \cdots \times m$
其中 $m$ 是不超过 $n$ 且与 $n$ 奇偶性相同的最小正整数(如果 $n$ 为偶数,则 $m=n-1$;如果 $n$ 为奇数,则 $m=n$)。
因为需要求 $2021!!$ 的最后 5 位,所以我们只需对每个乘积取模,并在计算过程中保留最后 5 位即可。具体来说,我们可以使用 Python 的代码实现:
```python
n = 2021
m = n if n % 2 == 1 else n - 1
result = 1
while m >= 1:
result = (result * m) % 100000
m -= 2
print(result)
```
这里我们首先确定了 $m$ 的值,然后从 $m$ 开始每隔 2 个数取一个数相乘,将乘积对 $10^5$ 取模并更新结果。最终输出的结果即为 $2021!!$ 的最后 5 位,为 80875。
相关问题
Python编写程序,求一个正整数的阶乘
好的,以下是一个求正整数阶乘的 Python 程序:
```python
num = int(input("请输入一个正整数:")) # 获取用户输入的正整数
result = 1 # 初始化阶乘结果为1
# 计算阶乘
for i in range(1, num+1):
result *= i
print(f"{num} 的阶乘是:{result}")
```
程序先获取用户输入的正整数,然后通过 for 循环计算该正整数的阶乘,最后输出计算结果。
Python编写一个程序,求一个正整数的阶乘
好的,以下是一个求正整数阶乘的 Python 程序:
```python
num = int(input("请输入一个正整数:")) # 获取用户输入的正整数
result = 1 # 初始化阶乘结果为1
# 计算阶乘
for i in range(1, num+1):
result *= i
print(f"{num} 的阶乘是:{result}")
```
程序先获取用户输入的正整数,然后通过 for 循环计算该正整数的阶乘,最后输出计算结果。