韩信点兵python函数按从1至5报数,记下最末一个士兵报的数为1; 再按从1至6报数,记下最末一个士兵报的数为5;再按从1至7报数,记下最末一个士兵报的数为4;最后按从1至11报数,最末一个士兵报的数为10。
时间: 2024-11-14 09:23:22 浏览: 0
这是一个经典的Python编程练习,涉及到循环和列表操作。你可以通过创建一个函数来解决这个问题。这个函数可以逐次遍历士兵人数,记录当前士兵报的数,并更新最后一个报数。以下是函数的实现:
```python
def find_last_number(total_soldiers):
last_reported = 1 # 初始化最后一个报数为1
for i in range(2, total_soldiers + 1):
if i % 5 == 4: # 指的是报数到5时,实际是最后一个报4的
last_reported = 5
elif i % 6 == 5: # 报数到6时,实际是最后一个报5的
last_reported = 5
elif i % 7 == 4: # 报数到7时,实际是最后一个报4的
last_reported = 4
elif i % 11 == 10: # 报数到11时,实际是最后一个报10的
last_reported = 10
return last_reported
# 测试函数
soldiers_count = [5, 6, 7, 11]
for count in soldiers_count:
print(f"对于 {count} 个士兵,最后一个报的数是: {find_last_number(count)}")
```
当你运行这个程序,会依次输出每个测试条件下的结果。
阅读全文