Új hozzászólás Aktív témák

  • theiron320

    aktív tag

    Üdv. Igazából programozási kérdésem lenne, nem kötődik a java nyelvhez.

    Az a feladat, hogy ha van egy adott N természetes szám (ami egy derékszögű háromszög egyik befogójának a hossza) akkor határozzuk meg annak a derékszögű háromszögnek a másik befogójának a hosszát(egész számot), amelyiknek minimális a területe.
    Ezt először úgy oldottam meg, hogy beolvasom az N számot, növelek egy c változót 1 től, összeadom a c*c + n*n - et ha ez négyzetszám(pitagorasz tétel) akkor a c megoldás. Utána úgy optimalizáltam rajta, hogy csak azokat az összegeket ellenőrzöm le ahol a c * n / 2 (terület) osztható hattal, mivel minden pitagoraszi számhármasból (3,4,5; 6,8,10) álló háromszög területe osztható hattal. Ezt még tovább optimalizáltam úgy, hogy a c - t kettővel, hárommal vagy hattal növeltem, attól függően, hogy az n mivel osztható, így csak olyan értékeket vizsgálok amelyek biztosan oszthatóak hattal. Sajnos ez nem elég, még így sem gyors a programom.
    Nem házi feladat (csak agytorna miatt csinálom), igazából ötletet szeretnék kérni, mivel már nem tudom, hogy mivel próbálkozzak gyorsítani. Igazából inkább logikai gyorsításra törekednék, nem arra, hogy átírjam assemblyben :)

Új hozzászólás Aktív témák

Hirdetés