Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 13 odgovora
  • 7.537 pregleda

Najnovija ↓

[Zadatak] Sabiranje prvih N fibonacijevih brojeva 11.01.2006. u 18:39 · pre 253 meseca #1
ovako: zadat mi je zadatak u c-u koji glasi:
napisati funkciju koja sabira prvih n fibonacijevih brojeva. funkcija mora da bude rekurzivna.
sme da se koristi: if, while, do while, for, pokazivaci.


e sad, da nije FUNKCIJU, bilo bi prosto, ali sve mora da bude u jednoj funkciji, koja ce samo da se pozove iz main...

pokusavao sam nesto, i nije bas uspelo....


jes' da i nije neki zadatak, ali bas me zanima kako...
Potpis
U pocetku bese Haos. A onda sam stvorio nebo i zemlju.
Re: [Zadatak] Sabiranje prvih N fibonacijevih brojeva 11.01.2006. u 20:14 · pre 253 meseca #2
Code:
int niz = {0,1} // nadalje inicilaliziran sa -1
for( int i = 0; i < FIB_BR; ++i )
{
    if( i >= 2 )
             niz[i] = niz[i-1] + niz[i-2];
}
// nakon for-a iscitas iz niza svoj broj

Ovo ti je jedno jednostavnije rijesenje. Naravno da se da priloagoditi potrebama.
Re: [Zadatak] Sabiranje prvih N fibonacijevih brojeva 11.01.2006. u 20:23 · pre 253 meseca #3
Code:
unsigned int fibonacci( unsigned int n ) 
 { 
    if ( n == 0 || n == 1 )
        return 1; 
    else
        return (fibonacci( n - 1 ) + fibonacci( n - 2 )); 
 } 
Re: [Zadatak] Sabiranje prvih N fibonacijevih brojeva 13.01.2006. u 17:48 · pre 253 meseca #4
@NnrmMyth:
ehm, nije dozvoljeno koristiti nizove. takvo nesto sam i ja napisao, ali ne ispunjava uslov zadatka...

@#Ninja#
ne znam da li je to ispalo kako treba, ali meni taj kod vraca fibonacijev broj, pomeren za jedan, a nikako ne njihov zbir
Potpis
U pocetku bese Haos. A onda sam stvorio nebo i zemlju.
Re: [Zadatak] Sabiranje prvih N fibonacijevih brojeva 13.01.2006. u 19:07 · pre 253 meseca #5
Code:
unsigned int fibonacci( unsigned int n ) 
 { 
    if ( n == 0 )
        return 0;
    else if ( n == 1 )
        return 1;
    else
           return (fibonacci( n - 1 ) + fibonacci( n - 2 )); 
 } 
Re: [Zadatak] Sabiranje prvih N fibonacijevih brojeva 13.01.2006. u 19:49 · pre 253 meseca #6
Da li ovo pomaze?

Code:
unsigned int fib(unsigned int a,unsigned int b,unsigned int n,unsigned int res)
{
    if(--n==0) return res;
    return fib(b,a+b,n,res+b);
}

Poziv sa

fib(0,1,broj_brojeva,0);
Potpis
Ipak se ++uje.
Re: [Zadatak] Sabiranje prvih N fibonacijevih brojeva 14.01.2006. u 18:14 · pre 253 meseca #7
ne bas :(

meni se cini da se mi nismo razumeli...
znaci, ako unesem broj 6, funkcija vraca:
1+1+2+3+5+8
Potpis
U pocetku bese Haos. A onda sam stvorio nebo i zemlju.
Re: [Zadatak] Sabiranje prvih N fibonacijevih brojeva 14.01.2006. u 22:46 · pre 253 meseca #9
pocinje od nule? izvinjavam se, onda je moja greska...

nas je izvesni profesor ubedjivao po tom pitanju da ako je prvi nula, zbir prethodna dva je isto nula, pa ne moze ni da se pocne, dok je sa jedan pravi pocetak...

..izgleda da je to samo jedna od mnogih stvari u kojima nije u pravu


i da, izvinjavam se zbog eventualne zabune, funkcija ne treba da vrati bukvalno string "0+1+1+2+3+5", vec rezultat toga, u ovom slucaju 12
Potpis
U pocetku bese Haos. A onda sam stvorio nebo i zemlju.
Re: [Zadatak] Sabiranje prvih N fibonacijevih brojeva 15.01.2006. u 01:09 · pre 253 meseca #10
I ja sam bio zaboravio, pa sam konsultovao ovo. Ko zna, mogao sam i pogresno da ga protumacim. U svakom slucaju, ako zamenis "--n" sa "n--" u funkciji gore, dobices trazeni rezultat.

Ako se pazi na trosenje memorije, staticke promenjive mogu da urade lep posao:

Code:
unsigned int fib1(unsigned int n)
{
    static unsigned int a,b,res,start=0,temp;

    if(start == 0)
    {        
        start = b = 1;
        res = a = 0;
    }
    
    if(n<2) // if(n<1)
    { return start=0, res; }

    res += (temp = b);
    b += a;
    a = temp;

    return fib1(--n);
}

Nadam se da je pravilno implementirano.
Potpis
Ipak se ++uje.
Re: [Zadatak] Sabiranje prvih N fibonacijevih brojeva 15.01.2006. u 21:55 · pre 253 meseca #11
staticke promenljive? znaci ima da ga olesim (profesora)...

aj sad, molim te, polako
prvo, ono unsigned int. sta je to? da li mora svuda (probao sam samo int i cini mi se da je sve isto)
zatim staticki. sta bi to (samo ukratko, ne moras da se cimas) bilo?
Potpis
U pocetku bese Haos. A onda sam stvorio nebo i zemlju.
Re: [Zadatak] Sabiranje prvih N fibonacijevih brojeva 16.01.2006. u 00:07 · pre 253 meseca #12
unsigned int je neoznačeni ceo broj. To u suštini znači da može biti samo pozitivan, odnosno da nema bit za znak na početku!

Statičke promenljive čuvaju podatke koji su trajni, odnosno čuvače vrednost do kraja izvršavanja programa!
Re: [Zadatak] Sabiranje prvih N fibonacijevih brojeva 18.01.2006. u 18:04 · pre 253 meseca #14
Mislim da moram da te ispravim. Fibonacijev red pocinje sa 1,1,2, itd. ako se kao argumenti uzimaju samo prirodni brojevi ali je sam definisan i za f(0) = 0. Uzgred:
Citat:
wikipedia.de: Oft wird auch f(0) = 0 ausgelassen und die Fibonacci-Folge mit f(1) = 1 und f(2) = 1 beginnend definiert, insbesondere bei der Anwendung auf Situationen, in denen ein Anfangswert Null keinen Sinn ergibt.
„Cesto biva izostavljeno f(0) = 0 i Fibonacijev red biva pocetno definisan sa f(1) = 1 i f(2) = 1, narocito prilikom primene u situacijama kada pocetna vrednost nula nema smisla.“ ( izvor )
Potpis
Ipak se ++uje.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme