• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Zadanie suma par cyfr

Object Storage Arubacloud
0 głosów
255 wizyt
pytanie zadane 8 października 2022 w Python przez Ichbinda Nowicjusz (230 p.)
zamknięte 8 października 2022 przez Ichbinda

W inpucie ma być liczba, w której cyfry są rozdzielone spacjami a w outpucie liczba par cyfr, których suma wynosi 11 każdą cyfrę można wykorzystać wyłącznie raz w celu utworzenia pary. 

np.

input:1 3 8 8

output:1

poniewaz 8+3 =11

ja mam taki problem, że gdy w inpucie jest liczba np.2 3 8 9 9 to w outpucie jest 3 problem jest tylko wlasnie z cyframi 2 i 9 w innych pzypadkach dziala poprawnie. Dodam, że dopiero zaczynam nauke programowania.

liczba= input()
lst = (liczba.split())
b=0
a=1
while a==1:
 
   if ("2" and "9" in lst): 
     lst.remove("2"and"9")
   
     b=b+1
   elif("3" and "8" in lst):   
       lst.remove("3"and"8")
       b=b+1
   elif("5" and "6" in lst): 
       lst.remove("5"and"6")
       b=b+1
   elif("4" and "7" in lst):      
       lst.remove("4"and"7")
       b=b+1   
   else:
       a = 0
print(b)

 

komentarz zamknięcia: rozwiązanie zadania
komentarz 8 października 2022 przez Great Stary wyjadacz (12,300 p.)

Prostszym sposobem będzie policzenie wszystkich cyfr i zsumowanie minimów par, które tworzą 11:

numbers = list(map(int, input().split()))
pairs = [[1, 10], [2, 9], [3, 8], [4, 7], [5, 6]]
count = 0
for first, second in pairs:
    count += min(numbers.count(first), numbers.count(second))
print(count)
komentarz 8 października 2022 przez Ichbinda Nowicjusz (230 p.)
dzięki

1 odpowiedź

0 głosów
odpowiedź 8 października 2022 przez Nelson89 Dyskutant (7,720 p.)

Cześć,

to co mi się rzuciło w oczy, to sposób w jaki usuwasz elementy z listy.

Wyrażenie lista.remove(<element listy> and <element listy> ) nie sprawia, że zostaną usunięte dwa elementy, tylko jeden element.

Operator and zwróci Ci tylko jeden element stojący po lewej lub po prawej stronie tego wyrażenia, w zależności jakie wartości logiczne przyjmują obiekty stojące po lewej i po prawej stronie,

Przykładowo w Pythonie pusty ciąg znaków -> "" przyjmuje zawsze wartość False, pusta lista przyjmuje wartość False, 0 przyjmuje wartość False. Także po użyciu tego operatora dostajesz w zwrocie drugi element gdy oba elementy są prawdziwe (True) lub ten, który przyjmuje wartość fałszu.

Także jak chcesz usunąć dwa elementy z listy to musisz dwa razy użyć funkcji remove.

Pozdrawiam,

 Nelson

komentarz 8 października 2022 przez Ichbinda Nowicjusz (230 p.)
próbowałem w ten sposób, i wyskakiwał błąd :list.remove(x): x not in list
komentarz 8 października 2022 przez Nelson89 Dyskutant (7,720 p.)

to możesz sprawdzić czy jest jeszcze ten element w liście.

if x in my_list:
    my_list.remove(x)

 

Podobne pytania

0 głosów
2 odpowiedzi 635 wizyt
pytanie zadane 5 stycznia 2020 w Python przez MsMaciek123 Pasjonat (24,760 p.)
0 głosów
2 odpowiedzi 987 wizyt
pytanie zadane 8 maja 2021 w C i C++ przez fsfxvcxv Obywatel (1,160 p.)
+1 głos
1 odpowiedź 393 wizyt

92,539 zapytań

141,382 odpowiedzi

319,476 komentarzy

61,928 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...