Underc0de

Foros Generales => Dudas y pedidos generales => Mensaje iniciado por: propanotriol en Marzo 07, 2015, 05:51:37 AM

Título: [SOLUCIONADO] Programa Python
Publicado por: propanotriol en Marzo 07, 2015, 05:51:37 AM
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.

Código (python) [Seleccionar]
#!/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!
Título: Re:Programa Python
Publicado por: $francisco en Marzo 07, 2015, 07:23:45 PM
echa un vistazo.

Código (python) [Seleccionar]
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