fibonacci tal række

Tags:    c++

Hej udviklere!

Jeg står og mangler en der kan noget c++, som kan lave et lille simpelt program for mig. Jeg skal bruge et program der kan spytte fibonacci talrække ud.

Funktioner:
Mulighed for at sætte min/max værdi for hvor den skal gå til
Mulighed for at sætte et specifikt "nummer" ind som man vil have oplyst eksempelvis F13(fibonacci tallet nr. 13) = 233

Går udfra dette er et ligetil projekt, og ikke det sværeste. Jeg har kigget lidt rundt på google og fundet et hav af nogle der er kodet, men kan ikke få dem compilet og ved ikke hvordan jeg gør. Derfor jeg søger hjælp her.

Håber der er en der kan hjælpe ;)

//Morten Klim Sørensen



75 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 6 karma
Sorter efter stemmer Sorter efter dato
Så vidt jeg ved er det ikke "lovligt" at lave arrays af "udefineret" størrelse (eller med størrelsen 0), nogle compilere tillader det, og hvis man ved hvad man gør, kan man godt bruge det.

Men i denne sammenhæng giver det ikke nogen form for mening.



tak for fejl tippet robert og bertel:D
og undskyld at jeg ikke ændrede tippet for bertel
Fold kodeboks ind/udKode 




Indlæg senest redigeret d. 18.03.2010 07:40 af Bruger #15732
At du sætter størrelsen til 0 løser ikke problemet. Arrayet skal være så stort, at det kan indeholde de elementer, du har tænkt dig at putte i det.



men jeg kan jo ikke vide hvor mange elementer jeg skal have i arrayet
kan jeg bruge static_cast til at konvertere fra int til int array så?
eller kender du andre måder at konvertere
fra int til int array robert?



Indlæg senest redigeret d. 18.03.2010 12:34 af Bruger #15732
Du kan bruge en vector fra STL. Det er et "array" som kan udvidde sig dynamisk:

Fold kodeboks ind/udKode 




er du sikker på man ikke kan bruge reintrepret_cast eller andet?



Nej, du kan ikke caste dig ud af problemet, uanset hvad du gør. Cast er noget ganske andet.



@Robert Larsen

Jeg har afprøvet din kode lidt du skrev tidligere:
Fold kodeboks ind/udKode 



Desvære går der et eller andet galt i koden, for efter Fib(46) begynder der og dukke minus tal op, som selvfølgelig ikke kan være tilfældet i fibonacci talrækken.



Indlæg senest redigeret d. 19.03.2010 12:46 af Bruger #15687
Prøv med unsigned int eller long. Tallene bliver for store til at de kan være i en int.



Fold kodeboks ind/udKode 


Og det virker:
Fold kodeboks ind/udKode 


...men det rykker selvfølgelig bare grænsen op til et større tal (mindst 64 bits). Vil du have større må du ud i noget bigint snask...GNU's GMP library f.eks.



t