(1)递归函数
def factorial_recursive(n): # 定义递归阶乘函数
if n == 0 or n == 1: # 如果 n 等于 0 或 1,则返回 1
return 1
else:
return n * factorial_recursive(n-1) # 否则返回 n 乘以 n-1 的阶乘结果
result_recursive = factorial_recursive(5) # 调用递归阶乘函数计算 5 的阶乘
print(result_recursive) # 打印计算结果
(2)for循环
# 定义一个函数来计算阶乘,使用迭代方法
def factorial_iterative(n):
result = 1
# 循环计算阶乘
for i in range(1, n+1):
result *= i
return result
# 调用函数计算5的阶乘
result_iterative = factorial_iterative(5)
# 打印结果
print(result_iterative)
二 斐波那契数列又称为兔子数列,因数学家列昂纳多·斐波那契以兔子繁殖为例子引入,这个数列中的数据满足以下公式:F(0)=0 , F(1)=1, F(2)=1, F(n)= F(n-1) + F(n-2) (n>=3,n∈N*)实现根据用户输入的数字输出斐波那契数列的功能。
def fibonacci(n): sequence = [0, 1] # 初始化斐波那契数列的前两个数字
for i in range(2, n+1):
sequence.append(sequence[i-1] + sequence[i-2]) # 计算当前位置的数字并添加到数列中
return sequence[:n+1] # 返回数列的前n个数字
# 用户输入数字
n = int(input("请输入一个正整数:")) # 获取用户输入的正整数
# 输出斐波那契数列
fibonacci_sequence = fibonacci(n) # 生成斐波那契数列
print(f"斐波那契数列前{n}个数字为:{fibonacci_sequence}") # 打印斐波那契数列的前n个数字
3.字符串反转:对于用户输入的字符串s,输出反转后的字符串。(注意:使用递归函数实现)例如:ABC——>CBA
4.可以使用Python编写如下程序,编写一个程序,在主程序中求1900-2020年中所有的闰年,每行输出5个年份。闰年即能被4整除但不能被100整除,或者能被400整除的年份。要求定义一个函数isLeap(),该函数用来判断某年是否为闰年,是闰年则函数返回True,否则返回False。
def isLeap(year): # 定义函数,判断是否是闰年
if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0: # 判断闰年的条件
return True # 如果是闰年,返回True
else:
return False # 如果不是闰年,返回False
def printLeapYears(start, end): # 定义函数,打印指定范围内的闰年
count = 0 # 初始化计数器
for year in range(start, end+1): # 遍历指定范围的年份
if isLeap(year): # 调用isLeap函数判断是否是闰年
print(year, end=" ") # 如果是闰年,打印年份并以空格结尾
count += 1 # 计数器加一
if count % 5 == 0: # 每5个闰年换行
print()
print() # 打印空行
printLeapYears(1900, 2020) # 调用函数,打印1900到2020年的闰年
5.可以使用Python编写如下程序,编写函数,求任意个连续整数的和,整数由用户输入。
# 定义一个函数来计算整数的和
def calculate_sum():
# 获取用户输入的整数并以空格分隔
nums = input("请输入要求和的整数(以空格分隔):").split()
# 将输入的整数转换成整数类型
nums = [int(num) for num in nums]
# 计算整数的总和
total = sum(nums)
# 打印整数的和
print("整数的和为:", total)
# 调用函数来执行整数求和
calculate_sum()
6.可以使用Python编写如下程序,利用上题编写函数,求(2+3+4+……..+19+20)+ (11+12+…..+99+100)的和。
# 定义一个函数,用于计算总和
def calculate_sum():
# 计算2到20的和
sum1 = sum(range(2, 21))
# 计算11到100的和
sum2 = sum(range(11, 101))
# 总和
total_sum = sum1 + sum2
return total_sum
# 调用函数并将结果赋值给result变量
result = calculate_sum()
# 打印结果
print("结果是:", result)