Pomoc c++

1

Pomoc c++

offline
  • Pridružio: 15 Maj 2008
  • Poruke: 5

jel moze neka pomoc za sledeci zadatak??
Sastaviti algoritam i napisati program pomocu kojeg se za dati broj n izracunava n-ti clan niza
Fn=3Fn-1 -2Fn-2 +Fn-1Fn-2 pri cemu je Fo=0 i F1=1
Napomena n je u ineksu!!!
ako moze neki odgovor na nemanjamic@yahoo.com



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 16 Jun 2005
  • Poruke: 2392
  • Gde živiš: Beograd

Moze npr ovako:

#include <iostream.h> int f(int cf[10],int n){ while(cf[n]<0){ if(cf[n-1]>-1 && cf[n-2]>-1)    cf[n]=3*cf[n-1]-2*cf[n-2]+cf[n-1]*cf[n-2]; else {    cf[n-1]=f(cf,n-1);    cf[n-2]=f(cf,n-2);} }    return cf[n]; } void main(){ int n,cf[10]; cf[0]=0; cf[1]=1; cin >> n; for(int i=2;i<n;i++) cf[n]=-1; f(cf,n); cout << cf[n];}



offline
  • Software developer
  • Pridružio: 06 Sep 2005
  • Poruke: 3800
  • Gde živiš: Beograd

Tipična rekurzija.
S' obzirom da si nov na forumu, verovatno nisi video da ovde ljudi ne vole da rade drugima domaće, ali vole da pomažu.
Zato, evo pomoći:
Postoje dva rešenja, iterativno i rekurzivno.
Rekurzivno zahteva malo više steka, ali je možda čitljivije, a iterativno zauzima manje steka, a u ovom slučaju nije ništa manje razumljivo.
Dakle ovako: rekurzivno:
Pozivaš funkciju sa tim indexom
proferavaš da li je ==0, ako jeste vratiš 0, a ako nije, pitaš da li je == 1, ako jeste vratiš 1, u suprotnom vratiš poziv te funkcije sa parametrima 3*Fn-1-.... prepišeš je
Evo ti primer za fibonačijev niz recimo,
{ if (n == 0) return 0; else if (n == 1) return 1; else return fib(n-1) + fib(n-2); }
Iterativno, poenta ti je da čuvaš tri broja broja,
inicijalizuješ recimo f0=0, i f1=1, i uzmeš petlju koja će se kretati od 0 do n-2 i tu računaš Fn=3*fn-1....
f0=f1
f1=fn

i to bi trebalo da je to

Dopuna: 15 Maj 2008 16:41

pretece me riddler Smile

offline
  • Pridružio: 16 Jun 2005
  • Poruke: 2392
  • Gde živiš: Beograd

Sad videh da nisam stavio proveru za n==0 i n==1, radio sam pod pretpostavkom da niko nece traziti ono sto se zna, ali to ne znaci da ne treba i to staviti u program, zato Nemanja_Vr implementiraj to u program Smile

offline
  • Pridružio: 15 Maj 2008
  • Poruke: 5

Nov sam u svemu ovom!!!
Hvala na pomoci!!!

offline
  • Pridružio: 04 Maj 2008
  • Poruke: 181
  • Gde živiš: Prijepolje

Pa radi li ti sad>...??

offline
  • Pridružio: 15 Maj 2008
  • Poruke: 5

ej ovaj program ne radi!!!
Nije tacan proverite sve to

offline
  • Software developer
  • Pridružio: 06 Sep 2005
  • Poruke: 3800
  • Gde živiš: Beograd

int f(int cf[10],int n){ while(cf[n]<0){ if(cf[n-1]>-1 && cf[n-2]>-1)    cf[n]=3*cf[n-1]-2*cf[n-2]+cf[n-1]*cf[n-2]; else {    cf[n-1]=f(cf,n-1);    cf[n-2]=f(cf,n-2);} }    return cf[n]; }
dal nije ovo beskonacna petlja u while

offline
  • Pridružio: 16 Jun 2005
  • Poruke: 2392
  • Gde živiš: Beograd

Evo ukucao sam sad i radi... bez promene sam kopirao ono sto sam napisao ovde... Mozda je Nemanja_Vr testirao sa "velikim" brojem, ovo radi za n<=7 za vece treba da se preradi...

offline
  • Pridružio: 15 Maj 2008
  • Poruke: 5

Evo tacnog resenja zadatka!!!

/*funkcija
*/
#include <iostream>
#include <cmath>
using namespace std;
int main (){
double fn,f0,f1;
int n,i;
cin>>n;
f(0)=0;
f(1)=1;
f(i)=3*f*(i-1)-2*f*(i-2)+f*(n-1)*f(n-2);
for (i=2;i<n;i++){
f(i)=3*f*(i-1)-2*f*(i-2)+f*(n-1)*f(n-2);
cout<<f(n);
return 0;
}
}

Ipak hvala svima na pomoci!!!

Ko je trenutno na forumu
 

Ukupno su 1149 korisnika na forumu :: 35 registrovanih, 7 sakrivenih i 1107 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: A.R.Chafee.Jr., Andrija357, antonije64, bojcistv, Buzdovan, CikaKURE, comi_pfc, d bos, debeli, doktor1964, doom83, galerija, krkalon, ladro, Lucije Kvint, Luka Blažević, mercedesamg, Mi lao shu, milan.vukovic, milenko crazy north, Milometer, Milos82, nikoladim, opt1, Parker, repac, rodoljub, sasa87, Stanlio, stegonosa, Trpe Grozni, vladetije, zapclink, |_MeD_|, žeks62