Keresés

Keresendő kifejezés:

Toplista

Toplista
  • betöltés...

Segítség!

Ahhoz, hogy mások kérdéseit és válaszait megtekinthesd, nem kell beregisztrálnod, azonban saját kérdés kiírásához ez szükséges!

Python,számos

81
Í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 hónapja
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 hónapja
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