Matematické Fórum

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

#1 17. 11. 2013 15:15

traktor
Zelenáč
Příspěvky: 3
Reputace:   
 

program

Máme osít N záhonů. Na každém záhonu může být buď mrkev nebo petržel, avšak nikdy nesmí být žádné dva sousední záhony osety petrželí. Sestavte program, který ze standardního vstupu přečte počet záhonů N a na standardní výstup vypíše číslo P, kde P je počet různých přípustných osetí.

Snažte se o efektivní výpočet. Vstupní číslo N nesmí být větší než 44. Pro výpočty použijte typ longint.

moje řešení je takhle , ale nevím dál protože mi to nevypisuje co má. Ďekuji

program mrkev;
var pocet:longint;
c,b:boolean;
x,y:longint;

function pocetmp(a:longint; my:boolean):longint;
begin
if my=false then
  begin
   pocetmp:=pocetmp(a-1, true);
  end else

pocetmp:=pocetmp(a-1,true)+pocetmp(a-1,false);
pocetmp:=pocetmp(a,true)+pocetmp(a,false);
end;
begin
readln(pocet);
c:=true;
b:=false;
x:=pocetmp(pocet,b);
y:=pocetmp(pocet,c);

writeln(x+y);
end.

Offline

 

#2 17. 11. 2013 16:14 — Editoval Bati (17. 11. 2013 16:15)

Bati
Příspěvky: 2469
Reputace:   192 
 

Re: program

Ahoj,
dřív než začneš psát nějaký program je dobrý se nad tím ještě jednou zamyslet, protože se občas ukáže, že ta úloha je matematicky triviální. To je i tento případ.
Předpokládejme, že umíme nějak spočítat počet možností P(n) pro n záhonů. Kolik je P(n+1)? No když na n+1. pozici dám mrkev, tak je jedno co je předtím, takže za mrkev mám P(n) možností. Když tam ale dám petržel, tak je jasné, že na n-té pozici musí být mrkev, a proto je jedno, co je před ní, takže to je P(n-1) možností za petržel. Takže celkem mám P(n+1)=P(n)+P(n-1). Doufám, že už je v tom vidět jistá známá posloupnost, jejíž n-tý člen se dá efektivně spočítat forcyklem.

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson