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
Určete počet všech možných korektních uzávorkování výrazu pomocí N párů závorek ().
Napište program, který zjistí a vypíše počet všech možných korektních uzávorkování výrazu pomocí N párů závorek (). Například pro N=3 existuje 5 takových možných uzávorkování:
()()()
(())()
()(())
(()())
((()))
Na standardním vstupu program dostane jedno celé číslo N určující počet párů závorek, výsledek výpočtu (opět jedno celé číslo) program vypíše na standardní výstup.
Offline
Zdravím, pravidla říkají
Vždy se snažte alespoň zběžně naznačit váš vlastní pokus a řešení předložených příkladů.
Jaký je tedy tvůj (Váš?) návrh na řešení této úlohy?
Offline
Program uzavorkovani;
const MAX = 1000;
var n: integer;
vysledek : array[1..MAX] of char;
i : integer;
procedure zavorky(l,p : integer);
begin
if( l > 0 ) then begin
vysledek[ 2*n -p -l +1 ] := '(';
zavorky(l-1,p);
end;
if( (p > 0) and (p > l) ) then begin
vysledek[ 2*n -p -l +1 ] := ')';
zavorky(l,p-1);
end;
if( p = 0 ) then begin
for i:= 1 to 2*n do write(vysledek[i]);
writeln;
end;
Offline
↑ Ainamella: Nechce sa mi skúmať čo za kód ste to tu dali ale k tým zátvorkám by vám možno mohlo pomôcť naštudovať si čo sú to Catalanove čísla. http://en.wikipedia.org/wiki/Catalan_number Potom by sa v tom mala dať nájsť pekná rekurencia.
Offline