Série pour génie

Contenu du snippet

Mon programme permet de calculer une série pour génie.
Une série pour génie est généralement présente dans les tests de QI
Pour ceux qui ne connaissent pas et qui ne savent pas de quoi je parle, voiçi un exemple de suite qui pourrait être obtenu à l'aide du programme:

1
11
21
1211
111221
312211
13112221

Donc grâce à mon programme vous aurez la possibilité de calculer ce genre de suite en fournissant au préalable un nombre de départ ce n'est pas un programme utile je vous l'accorde mais le programmer n'a pas été évident (enfin pour moi), c'est donc un défi que je me suis lancé pour m'entrainer avec python même si au final l'utilité n'était pas au rendez-vous :)

Source / Exemple :


#########################################
# Programme : Serie pour genies                                                              
# Auteur : Shakan972                                                                              
# Date de creation : 09/05/06                                                              
#########################################

print "Veuillez entrer le chiffre (ou nombre) de depart : ",    #Chaine de depart qui va determiner la suite de la serie
nch=raw_input()

print "\nVeuillez entrer le nombre d'etape(s) : ",  #Limite de la serie
etape=input()

print "\n",nch                              #Affichage de la chaine
ch='#'+nch+'#'                          #Ajout de deux caracteres quelconques aux deux extremites de la chaine
i=0                                                 #afin que cette derniere soit traite sans erreur(s)
t=0
lc=len(ch)
ll=''
v=0

while v<etape:
    while i<len(ch):
        if ch[i]!=ch[i+1]:
            t=0
            i=i+1
        t=t+1
        if i==len(ch)-1:                            #Si i depasse l'index maximal de la chaine on sort de la boucle!!
            break
        if ch[i]==ch[i+1]:
            while ch[i]==ch[i+1]:
                t=t+1
                i=i+1
        ll=ll+str(t)+ch[i]
    v=v+1
    print ll                   #Affichage de la nouvelle chaine a la ligne suivante
    ch='#'+ll+'#'       #qui sera egalement traite et ainsi de suite jusqu'a atteinte de la limite
    ll=''
    t=0
    i=0
raw_input()

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.