Keresés


Toplista

Toplista
  • betöltés...

Magántanár kereső

Ha szívesen korrepetálnál, hozd létre magántanár profilodat itt.
Ha diák vagy és korrepetálásra van szükséged, akkor regisztrálj be és írd meg itt, hogy milyen tantárgyban!

Python,számos

325
Írj egy Python programot, amely bekér három számot a felhasználótól és kiírja a képernyőre, hogy a számok közül bármelyik kettőnek az összege egyenlő-e a harmadik számmal!
Jelenleg 1 felhasználó nézi ezt a kérdést.
0
Középiskola / Informatika

Válaszok

3
szam_lista = [int(input(str(szam + 1) + '. szám: ')) for szam in range(3)]
szam_lista.sort()
if szam_lista[0] + szam_lista[1] == szam_lista[2]:
    print(szam_lista[0], '+', szam_lista[1], '=', szam_lista[2])
else:
    print('Nem találok összefüggést a számok közt')

Amennyiben negatív számokat is kell kezeljünk, már kevésbé szép:

szam1 = int(input('1. szám: '))
szam2 = int(input('2. szám: '))
szam3 = int(input('3. szám: '))
if szam1 + szam2 == szam3:
    print(szam1, '+', szam2, '=', szam3)
elif szam2 + szam3 == szam1:
    print(szam2, '+', szam3, '=', szam1)
elif szam2 + szam3 == szam1:
    print(szam3, '+', szam1, '=', szam2)
else:
    print('Nem találok összefüggést a számok közt')

Ezen lehet ugyan picit egyszerűsíteni, de attól még nem lesz szebb:

def egyenloe(egy, ketto, harom):
    if egy + ketto == harom:
        print(egy, '+', ketto, '=', harom)
        return True

szam1 = int(input('1. szám: '))
szam2 = int(input('2. szám: '))
szam3 = int(input('3. szám: '))
egyenloe(szam1, szam2, szam3) or \
egyenloe(szam2, szam3, szam1) or \
egyenloe(szam3, szam1, szam2) or \
print('Nem találok összefüggést a számok közt')

Ha viszont segítségül vehessük az itertools module-t, akkor a cycle() használatával átírhatjuk az első megoldást csúnya kódismétlések nélkül:

from itertools import cycle

szam_lista = cycle([int(input(str(szam + 1) + '. szám: ')) for szam in range(3)])
for _ in range(3):
    if next(szam_lista) + next(szam_lista) == next(szam_lista):
        print(next(szam_lista), '+', next(szam_lista), '=', next(szam_lista))
        break
    else:
        next(szam_lista)
else:
    print('Nem találok összefüggést a számok közt')
Módosítva: 1 éve
2

VF megoldásai teljesen jók, pozitív számok esetén. A., egy megoldás., B egy kicsit bővített kiirja, hol történt egyezés. ((de VF átírt kódja már ugyanaz)).
Módosítva: 1 éve
1

import itertools

szam1 = float(input("1. szám: "))
szam2 = float(input("2. szám: "))
szam3 = float(input("3. szám: "))

for i in itertools.permutations([szam1, szam2, szam3]):
if eval(f"{i[0]} + {i[1]}") == i[2]:
print(f"{i[0]} + {i[1]} = {i[2]}")
else:
print("Nincs két olyan szám, melyek összege a 3. szám.")
break


Ha nem kell úgy, hogy a + b = c és b + a = c formában kiírni, akkor raksz egy break-et az első print után.
0