Niveau 1
Joseph Marchand aime ses amis et il sait que ses amis aiment le chocolat. Il décide donc de leur offrir à tous des ballotins de chocolat faits maison. Seulement, s'y prenant au dernier moment, il n'a pas le temps de préparer tous les chocolats à temps. Il décide alors que seuls ses amis en couple recevront des chocolats ! Étant de nature curieuse, il aimerait bien connaître le nombre moyen de chocolats qu'il va offrir à ses amis. De plus, Joseph Marchand offre toujours un nombre impair de chocolats à ses amis (et donc un nombre pair à ses amis en couple).
Connaissant le tableau de toutes ses commandes prévues, vous devez renvoyer le nombre moyen de chocolats qu'il va offrir, en ne prenant en compte que les couples !
Dans l'exemple 1 ci-dessous, Joseph Marchand va préparer en moyenne (6 + 10 + 8)/3 chocolats.
Entrée
5 6 10 3 5 8
Sortie
8
""" auteur : Franck CHAMBON Régional 2011 - Problème 2 - Chocolats https://prologin.org/train/2011/semifinal/chocolats """ # 0. Cœur du problème def moyenne_nombres_pairs(ma_liste: list[int]) -> int: """Renvoie la moyenne tronquée des nombres pairs de `ma_liste` >>> moyenne_nombres_pairs([1, 2, 3, 4]) 3 >>> moyenne_nombres_pairs([12, 22, 3, 0]) 11 """ ma_liste_filtrée = [x for x in ma_liste if x % 2 == 0] moyenne_filtrée_tronquée = sum(ma_liste_filtrée) // len(ma_liste_filtrée) return moyenne_filtrée_tronquée # import doctest # doctest.testmod() # exit(0) # 1. Lecture nb_chocolats = int(input()) chocolats = list(map(int, input().split())) # 2. Écriture print(moyenne_nombres_pairs(chocolats))
Ceci était une version fonctionnelle, on peut écrire un code plus simple.
nb_tours = int(input()) nb_chocolats = 0 nb_couples = 0 for x in map(int, input().split()): if x % 2 == 0: nb_couples += 1 nb_chocolats += x print(nb_chocolats // nb_couples)