Python相关练习3

本文介绍了四个Python编程题目:1)查找数组中唯一重复的整数,2)找出10000以内能被5或6整除但不同时被两者整除的数,3)计算列表中偶数下标元素的和,4)计算从棋盘左上角到右下角的唯一路径数量。这些题目涉及基础数据结构和算法应用。
摘要由CSDN通过智能技术生成

1. 给定一个包含n+1个整数是数组Nums,其数字在1-n之间(包含1和N),可知至少存在一个重复的整数,假设只有一个重复的整数,请找出这个重复的数。

重复的整数是: 2

def find_duplicate(nums):
    tortoise = nums[0]
    hare = nums[0]

    while True:
        tortoise = nums[tortoise]
        hare = nums[nums[hare]]
        if tortoise == hare:
            break

    ptr1 = nums[0]
    ptr2 = tortoise

    while ptr1 != ptr2:
        ptr1 = nums[ptr1]
        ptr2 = nums[ptr2]

    return ptr1

# 示例输入
nums = [1, 3, 4, 2, 2]

duplicate_number = find_duplicate(nums)
print("重复的整数是:", duplicate_number)

2.找出10000以内能被5或6整除,但不能被两者同时整除的数(函数)

[5, 6, 10, 12, 15, 18, 20, 24, 25, 35, ........,9978, 9980, 9984, 9985, 9995, 9996, 10000]

def find_number():
    number =[]
    for i in range(1,10001):
      if (i%5==0 or i%6==0) and not (i%5==0 and i%6==0):
         number.append(i)
    return number

res = find_number()
print(res)

3.写一个方法,计算列表所有偶数下标元素的和(注意返回值)

所有偶数下标元素的和为: 25

def sum_even_index_elements(nums):
    total_sum = 0
    for i in range(len(nums)):
        if i % 2 == 0:
            total_sum += nums[i]
    return total_sum

# 示例输入
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

result = sum_even_index_elements(nums)
print("所有偶数下标元素的和为:", result)

4.某个人进入如下一个棋盘中,要求从左上角开始走,最后从右下角出来(要求只能前进,不能后退),问题:共有多少种走法?

棋盘大小为 3 行 4 列时的走法总数为: 10

def unique_paths(m, n):
    dp = [[1] * n for _ in range(m)]

    for i in range(1, m):
        for j in range(1, n):
            dp[i][j] = dp[i-1][j] + dp[i][j-1]

    return dp[m-1][n-1]

# 棋盘大小为3行4列的示例
m = 3
n = 4
total_paths = unique_paths(m, n)
print("棋盘大小为", m, "行", n, "列时的走法总数为:", total_paths)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值