Tengo un programa para resolver el problema de Flavius, que consiste en tener un numero n de personas e ir matando 1 cada dos personas, y el objetivo es saber en qué posición colocarse para ser el último, y así poder salvarse.
#!/usr/bin/env python2
# -*- coding: utf-8 -*-
def making(num):
global circulo
circulo = []
for a in range(1, num + 1):
circulo.append(a)
def flavio():
k = 1
num = input("[+] Numero de personas: ")
making(num)
while len(circulo) != 1:
circulo.pop(k)
circulo.append(circulo.pop(k-1))
print "[+] Se salva la persona: "+str(circulo)
Ahora lo que quiero hacer es transformar el código para que en lugar de matar 1 por cada dos, sea 1 cada 3, o hasta 1 casa n.
Mi problema viene cuando modifico el programa, cambiando K y añadiendo otra .append que me da un error cuando la lista es inferior a 3.
Alguna idea?
Un saludo!
echa un vistazo.
final = []
def kill(num):
n = 1
for i in range(1,num+1):
if n != 3:
n += 1
else:
n = 0
final.append(i)
kill(10)
print final