LUCAS WILLEMS
Un étudiant de 27 ans passionné par les maths et la programmation
Un étudiant de 27 ans passionné par les maths et la programmation
Voici un résumé de l'énoncé du problème 22 "Names scores" du Project Euler (traduction complète en français ici) :
What is the total of all the name scores in the file ? (voir énoncé complet)
Reformulons le problème : il nous faut trouver la total de tous les scores des noms présents dans le fichier donné dans l'énoncé. Pour résoudre ce problème, il nous suffit, tout simplement, de suivre la démarche expliquée dans l'énoncé et qui consiste à :
Voici donc le programme Python que nous pouvons utiliser pour résoudre ce problème :
#Cette fonction prend en paramètre un nom/mot et retourne sa valeur alphabétique def name_score(name): score = 0 #Lecture un par un des lettres du mot for i in name: #La fonction ord prend en paramètre un caractère et retourne son code ascii #Le code ascii de A étant 65, il nous faut soustraire 64 au code ascii #d'une lettre pour obtenir sa position dans l'alphabet score += ord(i) - 64 return score
fichier = open("022_names.txt", "r") #Lecture des noms du fichier et génération de la liste des noms names = list(eval(fichier.read())) fichier.close() names.sort() resultat = 0 for i, name in enumerate(names): resultat += name_score(name)*(i+1) print(resultat)
Notez que pour que ce programme fonctionne, il vous faut au préalable enregistrer tous les noms dans un fichier "002_names.txt" se trouvant dans le même dossier que le programme.
La réponse à ce problème est 871198282.
Voici les recherches relatives à cette page :
Qu'en pensez-vous ? Donnez moi votre avis (positif ou négatif) pour que je puisse l'améliorer.