Hogyan írjak olyan if et ami felismeri, hogy egy háromszög derékszögű e? Nem bírok rájönni.
Tippelek.
Hogyha az átfogó hossza egyenlő a másik két oldalának összegével,akkor az egy derékszögű háromszög?
Ahogy az első mondja, a két befogó hosszának négyzetösszege egyezik meg az átfogó hosszának négyzetével.
Tehát ha a2, b2 és c2 a három oldal hossza, akkor egy ilyen feltétel pl jó lesz:
0 == (a2 + b2 - c2) * (a2 - b2 + c2 ) * (-a2 + b2 + c2)
És ez a feltétel jó volna?
if (a2 + b2) ** 2 == c2 ** 2
IOStream feltételében elég sok a matek :) Előszöris: egy szorzat akkor lesz 0, ha az egyik tagja 0. Nem írtad, hogy milyen sorrendben vannak az oldalak, tehát mindhárom esetet meg kell vizsgálni. Ha a két átfogó négyzetőből kivonod a befogó négyzetét, akkor elvileg 0-t kapsz, ha a háromszög derékszögű. Az ő feltétele mindhárom lehetőséget megvizsgálja, és ha valamelyiknél kijön a 0, akkor a teljes szorzat 0 lesz, tehát a háromszög derékszögű. Ha nem 0, akkor a háromszög nem derékszögű.
Amivel még gondod lehet, az a kerekítés. Valós számokkal a számítógép nem számol teljesen pontosan, tehát a 0 az lehet 0.000001 is. De ez kijöhet azért is, mert a szög 89.9999°-os :)
Még mindig nem értem iostream képletét.
A képletben nem is történik az amit leírtál.
Kipróbáltam papíron de semmi összefüggés.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!