-
给定一个包含n+1个整数的数组nums,其数字在1到n之间(包含1和n), 可知至少存在一个重复的整数,假设只有一个重复的整数,请找出这个重复的数
代码呈现:def find(nums): slow = nums[0] fast = nums[0] while True: slow = nums[slow] fast = nums[nums[fast]] if slow == fast: break slow2 = nums[0] while slow != slow2: slow = nums[slow] slow2 = nums[slow2] return slow nums = [4, 1, 3, 4, 6, 8, 6, 3, 4, 2] print(find(nums))
结果呈现:
-
找出10000以内能被5或6整除,但不能被两者同时整除的数(函数)
代码呈现:def find(): result = [] for i in range(1, 10001): if (i % 5 == 0 or i % 6 == 0) and not (i % 5 == 0 and i % 6 == 0): result.append(i) return result special_numbers = find() print(f'10000以内能被5,6整除,但不能同时整除的数有:' f'\n{special_numbers}')
结果呈现:
-
写一个方法,计算列表所有偶数下标元素的和(注意返回值)
代码呈现:def sum(lst): total_sum = 0 for i in range(len(lst)): if i % 2 == 0: total_sum += lst[i] return total_sum l = [1, 3, 5, 7, 9, 11, 13, 15] result = sum(l) print(l) print(f"偶数下标和为: {result}")
结果呈现:
-
【选做】某个人进入如下一个棋盘中,要求从左上角开始走, 最后从右下角出来(要求只能前进,不能后退), 问题:共有多少种走法?
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 代码呈现:
def chessboard(rows, cols): if rows == 1 or cols == 1: return 1 return chessboard(rows - 1, cols) + chessboard(rows, cols - 1) rows = int(input('请输入行数:')) cols = int(input('请输入列数:')) result = chessboard(rows, cols) print(f'从左上角到右下角的路径数为:{result}')
结果呈现:
-
【选做】汉诺塔:
代码呈现:def f(n): if n == 0: return 0 else: return 2*f(n-1)+1 x = int(input("请输入片的个数:")) print(f"{x}层汉诺塔需要移动", f(x), "次")
结果呈现:
python练习杂糅⑤——索引,列表操作
于 2024-03-29 23:49:18 首次发布