[SOLUCIONADO] Programa Python

Iniciado por propanotriol, Marzo 07, 2015, 05:51:37 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Marzo 07, 2015, 05:51:37 AM Ultima modificación: Marzo 30, 2015, 10:38:46 AM por Gabriela
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
#!/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!

Marzo 07, 2015, 07:23:45 PM #1 Ultima modificación: Marzo 07, 2015, 07:27:11 PM por $francisco
echa un vistazo.

Código: python
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