Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Stránky: 1
Téma zavřeno
1)Na vstupu dostanete seznam celých čísel ukončený -1, které nepatří do seznamu. Vypište je v opačném pořadí oddělené mezerou. Čísel nebude více než 1000.
2)Napište program, který najde všechny pythagorejské trojice. Pythagorejskou trojicí rozumíme taková tři přirozená čísla A, B a C, pro která platí A2 + B2 = C2.
Na vstupu dostane program přirozené číslo N. Můžete předpokládat, že N ≤ 30000. Výstup pak tvoří seznam všech unikátních pythagoresjkých trojic A, B a C, pro která platí, že max(A, B, C) ≤ N. Každá trojice se musí nacházet na jednom řádku. Trojice lišící se pouze pořadím jejích prvků považujte za stejné. Pořadí trojic i prvků v trojicích může být libovolné.
Příklad:
Vstup:
15
Výstup:
3 4 5
13 12 5
10 6 8
12 9 15
Poznámka: Toto je pouze jedno z možných řešení. Výstupy lišící se pouze pořadím řádků a pořadím čísel v jednotlivých řádcích jsou považovány za stejné.
diky moc za pomoc
Offline
Ahoj, existují nějaké vzorce pro výpis všech pythagorejských trojúhelníků, jeden vzorec pro sudá čísla, druhý pro lichá, v každém vzorci je nějaký parametr, který když zvětším o jedničku, tak vyjde další řešení.
Ty vzorce jsme se učili v matice ale už si je nepamatuji. Zkus to vygooglit. Když to nenajdeš, ozvi se a já to zkusím najít ve svém sešitě.
Offline
tak jsem to nejak nenasla...a stejne vubec nwm jak to napsat a neustale mam nejaky chyby
Offline

Jake tam mas chyby? nenajde to spravne ty trojice? Tak kdyztak ukaz, co zatim mas. Asi jsou i efektivnejsi reseni, ale muze to vypadat napriklad takhle:
program PythTrojice;
var n, a, b, c:integer;
begin
read (n);
a := 1;
while (a < n) do begin
b := 1;
while (b <= a) and (sqrt(a*a + b*b) <= n) do begin
c := round(sqrt(a*a + b*b));
if (c*c = a*a + b*b) then writeln (a,' ',b,' ',c);
b := b + 1;
end;
a := a + 1;
end;
end.Offline
jo uz to jde, vysvetlil mi to kamarad uz...ale dik za pomoc mela sem blbe radek s while...
Offline

Ok, takze ktere priklady jeste potrebujes? Ten priklad 1) mas? A ty permutace v jinem prispevku?
Offline
tu 1 nemam, pak nemam vsechny co sem sem psala a jeste nejaky doplnim tak jestli budes mit cas a chut tak mi je sem muzes napsat:)
diky moc
Offline

↑ trikolorka:
No ta jednicka se vlastne resila uz tady jak vidim.
Offline
Téma zavřeno
Stránky: 1