PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fibunachizahlenausgabe



m.enno
17.12.2007, 07:15
Servus,
kann mir mal jemand zeigen, wie der Code aussehen muss, dass nach Eingabe einer Zahl die Fibunachizahlen bis zu einem bestimmten Wert angezeigt werden?

mfg
m.enno

rob00n
17.12.2007, 11:57
Sorry aber was sind Fibunachizahlen ?
Google sagt mir da nichts aufschlussreiches. ^^

zig81
17.12.2007, 13:16
Das liegt daran das man es anders schreibt. "Fibonacci"

So sieht ne Fibonacci Folge aus:

0,1,1,2,3,5,8,13,21

Ergibt sich daraus, dass man immer die letzten zwei Zahlen zusammenzählt.

0+1=1
1+1=2
1+2=3
2+3=5
3+5=8
5+8=13
8+13=21
13+21=34
usw.


So ein source sollte nicht schwer zu coden sein.
Und sources findet man sicher auch dafür, solange man nach dem richtigen Namen sucht.

rob00n
17.12.2007, 14:53
#include <iostream.h>

int main()
{
int a=0, b=1, c=0, count=0;

cout << "n00bor presents: WTF LOL Fibonacci! \n";
cout << "Wie oft?\n";
cin >> count;
cout << "\n";

for(int i=1; i<=count; i++)
{
c = a + b;
cout << a << " + " << b << " = " << c << "\n";
a = b;
b = c;
}
cin >> count;
}

l0dsb
17.12.2007, 15:11
#include <stdio.h>
#include <conio.h>
#include <limits.h>

int main()
{
int start, ende;

printf("\n\tfibonacci-reihe\n\n\tstart:\t");
scanf("%i", &start);

printf("\tende:\t");
scanf("%i", &ende);

if(start < 0) start *= -1;
if(ende < 0) ende *= -1;

if(start > ende)
{
start ^= ende;
ende ^= start;
start ^= ende;
}

int a, b, c;
a = start;
b = 2 * a - 1;
c = 0;
printf("\n\t%i %i", a, b);

while(c < ende && c < INT_MAX)
{
if((c = a + b) > ende) break;
printf(" %i", c);
a = b;
b = c;
}

getch();
return 0;
}

Added after 56 seconds:

Hm, zu langsam und buggy. Verdammt. :P

rob00n
17.12.2007, 15:16
Oh, hatte gar nicht gelesen, dass ein Startwert gewünscht ist.
Kombinier einfach die beiden Programme und gut ist´s. ^^

Edit://
Was mir so auffällt für a, b und c ist, dass unsigned wohl sinnvoller sein würde. Eben so wie long statt int.
Ist doch so, oder?

l0dsb
17.12.2007, 15:53
Ja, ich verwende eigentlich auch immer unsigned long (sprich dword), habe da aber meine eigenen typedefs und die würden nur verwirren. Hab deshalb int genommen. :)

Naja, es tut ja. :P