一、实操题
1、现有 n 个人依次围成一圈玩游戏,从第 1 个人开始报数,数到第 m 个人出局,然后从出局的下一个人开始报数,数到第 m 个人又出局,...,如此反复到只剩下最后一个是胜利者。设 n 个人的编号分别为 1,2,...,n,打印出局的顺序。
输入:
10 4
输出:
出局的人是: 4 出局的人是: 8 出局的人是: 2 出局的人是: 7 出局的人是: 3 出局的人是: 10 出局的人是: 9 出局的人是: 1 出局的人是: 6 最后胜利者是: 5
参考答案:```pythondef circle_game(n, m):remaining = list(range(1, n+1))while len(remaining) > 1:for i in range(m-1):next_person = (remaining[i] + m - 1) % len(remaining)if next_person not in remaining:remaining.remove(next_person - len(remaining) + 1)else:remaining.remove(next_person)print(f"出局的人是: remaining[0]-1")print(f"最后胜利者是: remaining[0]-1")n, m = map(int, input().split())circle_game(n, m)```
2、a 和 b 是两个列表变量,列表 a 为[3,6,9]已给定,键盘输入列表 b,将 a 列表的三个元素依次插入到 b 列表中对应的三个元素的后面,并显示输出在屏幕上。
输入:
[1,2,3]
输出:
[1,3,2,6,3,9]
参考答案:br />对于题目中给定的列表a为[3,6,9],我们需要将这三个元素依次插入到列表b中对应元素的后面。根据题目输入,列表b为[1,2,3]。因此,我们可以按照以下步骤进行操作:1. 取出列表a的第一个元素3,插入到列表b的第一个元素1的后面,得到新的列表[1,3,2,3]。2. 取出列表a的第二个元素6,插入到列表b的第二个元素2的后面,得到新的列表[1,3,2,6,3]。3. 取出列表a的第三个元素9,插入到列表b的第三个元素3的后面,得到最终的列表[1,3,2,6,3,9]。
3、让用户输入一串数字和字母混合的数据,然后统计其中的数字和字母的个数,显示在屏幕上。
输入:
Fda243fdw3
输出:
数字个数:4,字母个数:6
参考答案:br />可以使用Python编写一个简单的程序来统计数字和字母的个数。具体实现如下:```pythoninput_str = input("请输入一串数字和字母混合的数据:")num_count = 0char_count = 0for char in input_str:if char.isdigit():num_count += 1elif char.isalpha():char_count += 1print("数字个数:", num_count, "字母个数:", char_count)```
4、计一个算法,将一个正整数分解质因数。
程序分析:对 n 进行分解质因数,应先找到一个最小的质数 k,然后按下述步骤完成:
(1)如果这个质数恰等于 n,则说明分解质因数的过程已经结束,输出即可。
(2)如果 n>k,但 n 能被 k 整除,则应打印出 k 的值,并用 n 除以 k 的商,作为新的正整数 n,重复执行第一步。
(3)如果 n 不能被 k 整除,则用 k+1 作为 k 的值,重复执行第一步。
输入:
105
输出:
105= 3*5*7
参考答案:br />算法如下:1. 从2开始,判断是否能整除输入的整数n。2. 如果能整除,则打印出该数,并用n除以该数的商作为新的n,重复步骤1。3. 如果不能整除,则将该数加1,重复步骤1。
5、绘制图形:
请使用 turtle 库绘制太阳花,太阳花边长为 200,内角为 30,画笔颜色为红色,填充颜色为黄色,图形效果如下:
参考答案:由于我无法直接运行代码,我将提供一个使用Python的turtle库绘制太阳花的示例代码。```pythonimport turtledef draw_sunflower(side_length, inner_angle):window = turtle.Screen()window.bgcolor("white")sunflower = turtle.Turtle()sunflower.shape("turtle")sunflower.speed(1)sunflower.color("red", "yellow")for _ in range(36): # 绘制36个花瓣for _ in range(2): # 每个花瓣由两个等腰三角形组成sunflower.forward(side_length)sunflower.right(inner_angle)sunflower.forward(side_length)sunflower.right(170) # 转到下一个花瓣sunflower.hideturtle()draw_sunflower(200, 30)turtle.done()```
喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!