测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A31653. 约瑟夫环2024年春节联欢晚会上,刘谦表演了一个纸牌魔术,深受观众欢迎。这个魔术的内容其实是一个经典的约瑟夫环问题,相当于n张牌形成一个环,依次循环报数,每次报到m的那一张牌扔掉,直到剩下最后一张牌。小智编写了以下程序来模拟8张牌的淘汰过程,请补充完成该程序。def Josephus(num,gap): location_list = [a for a in range(1,num+1)] if…

填空题 较难

题目描述

约瑟夫环

2024年春节联欢晚会上,刘谦表演了一个纸牌魔术,深受观众欢迎。这个魔术的内容其实是一个经典的约瑟夫环问题,相当于n张牌形成一个环,依次循环报数,每次报到m的那一张牌扔掉,直到剩下最后一张牌。小智编写了以下程序来模拟8张牌的淘汰过程,请补充完成该程序。

def Josephus(num,gap):

     location_list = [a for a in range(1,num+1)]

     if num ==   1 :

               ①        

     else:

          index = 0

          for i in        ②        :

               index = (index + gap - 1 )%        ③        

               print("本次淘汰的牌为:",location_list[index])

               del location_list[index]

          print( "最后剩下的牌为:",location_list[        ④        ])

Josephus(8,2)

参考答案

def Josephus(num,gap): location_list = [a for a in range(1,num+1)] if num == 1 : return else: index = 0 for i in range(num-1): index = (index + gap - 1 )%len(location_list) print("本次淘汰的牌为:",location_list[index]) del location_list[index] print( "最后剩下的牌为:",location_list[0]) Josephus(8,2)

答案解析

(1)return 或等效答案;(2分)

(2)range(num-1) 或等效答案;(4分)

(3)len(location_list) 或等效答案;(4分)

(4)0 或等效答案。(2分)

上一题 下一题