1. 两种方式求5!(for循环和递归函数)

(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)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值