验三 使用函数求验三 使用函数求阶乘和阶乘和
时间: 2024-10-29 11:16:36 浏览: 4
C++递归实现求阶乘和(含实现原理和代码注释)
"验三"通常是指判断一个数是否为水仙花数,即这个三位数各个位上的数字立方和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
要编写一个函数来计算一个整数n的阶乘(Factorial),你可以采用递归或循环的方式。以下是两种简单的Python函数示例:
```python
# 递归方式计算阶乘
def factorial_recursive(n):
if n == 0 or n == 1:
return 1
else:
return n * factorial_recursive(n - 1)
# 循环方式计算阶乘
def factorial_iterative(n):
result = 1
for i in range(1, n+1):
result *= i
return result
```
使用这些函数,你可以分别输入一个数,比如`验三_number`来检查它是否是水仙花数,或者直接计算它的阶乘。例如:
```python
def is_lychrel_number(n):
sum_of_cubes = sum(int(digit) ** 3 for digit in str(n))
for _ in range(10): # 检查10次,如果始终相等,则不是水仙花数
n += sum_of_cubes
if n == sum_of_cubes or str(n) == str(sum_of_cubes):
return False
return True
# 示例
number = 153
is_lychrel = is_lychrel_number(number)
factorial = factorial_recursive(number)
print(f"{number} 是水仙花数吗? {is_lychrel}")
print(f"{number} 的阶乘是: {factorial}")
阅读全文