Kezdőoldal » Számítástechnika » Programozás » /Fibonacci osszeg/1,1,2,3,5,8,...

/Fibonacci osszeg/1,1,2,3,5,8,13, . Ezt az algoritmust hogyna irjam fel sima C ben?

Figyelt kérdés
minden kov. tag osszege az elozo
2011. dec. 28. 00:20
 1/6 anonim ***** válasza:

Egyszeru.

első két számot felveszed egy tömb elejére.

utána csak egy for ciklus ami valtozo -2 és valotzo-1et összeadja :D

röviden:

-bekéred hány fibonacci kell. ( N )

- mallocolsz N méretú tömböt

- első két elem 1

- forciklus: i : 2től -> Nig

tomb[ i ] = tomb[i-2] + tomb [i-1]

ennyi

2011. dec. 28. 00:34
Hasznos számodra ez a válasz?
 2/6 anonim ***** válasza:

tömb nélkül:


bekér(n)

a:=1 b:=1

kiír(1 1 )

c:=a+b

ciklus 1től (n-2)ig

( kiír(c )

a:=b

b:=c

c:=a+b)

2011. dec. 28. 01:16
Hasznos számodra ez a válasz?
 3/6 anonim ***** válasza:

Fibonacci nem osszeg hanem sorozat, méghozzá rekurzív sorozat.

Vagy rekurzívan is lehet pszedudo kód:

fib(n){

if n<=1 then

return 1 else

return fib(n-1)+fib(n-2);

}

De ez lassú mert rengetegszer kiszámolja ugyan azt az értéket, de lehet ezen segíteni memorizálni egy tömbbe a már kiszámolt értékeket.

2011. dec. 28. 02:21
Hasznos számodra ez a válasz?
 4/6 A kérdező kommentje:

#include <stdio.h>

#include <string.h>

#include <stdlib.h>


int main()

{

int a=1,b=1,c,i,n;

printf("%d %d",a,b);

c= a+b;


for (i = 1 ; i <= 10;i++){

a = b;

b = c;

c = a + b;

printf("A: %d B: %d C: %d \n",a,b,c);

}


}



ez nem adja ugyan azt a sorozatot

2011. dec. 28. 09:00
 5/6 anonim ***** válasza:

Esetleg: [link]


Első találat pl: [link]

2011. dec. 28. 13:11
Hasznos számodra ez a válasz?
 6/6 anonim ***** válasza:

#include <stdio.h>

#include <stdlib.h>


/* Függvény prototípusok */

int* N_meretu_tombot_foglal( int );

void fibonacci_feltolt( int *, int );

void fibonacci_kiir( int *, int );


int main()

{

/* Pointer ami a tömbre fog mutatni */

int *fibonacci;

/* N tárolja hogy hány fibonaccit akarsz megkapni ( továbbá ekkora tömböt fogok foglalni a függvényben ) */

int N = 40;


/* A visszakapott tömböt letárolom */

fibonacci = N_meretu_tombot_foglal( N );

/* A tömböt átadom a feltöltő függvénynek, illetve a tömb méretet a második paraméterben */

fibonacci_feltolt( fibonacci, N );

/* A tömböt átadom a kiíró függvénynek, illetve a tömb méretet a második paraméterben */

fibonacci_kiir( fibonacci , N );


return 0;

}


int* N_meretu_tombot_foglal( int x ){

/* Lefoglalok a fibonaccinak egy memóriaterülete ( paraméterben kapott méretűt ) */

/* Visszaadom */

return (( int * ) calloc ( x , sizeof( int ) ));

}


void fibonacci_feltolt( int * t, int x ){

/* Feltöltöm a paraméterben kapott tömböt a fibonacci sorozattal ( előző két elem összege egy ciklusban ) */

int i;

t[ 0 ] = 1;

t[ 1 ] = 1;

for( i = 2; i < x; i++ ){

t[ i ] = t[ i-2 ] + t[ i-1 ];

}

}


void fibonacci_kiir( int * t, int x ){

/* Bejárom a paraméterben kapott tömböt és a képernyőre írom soronként az elemeit */

int i;

for( i = 0; i < x; i++ ){

printf( "%d.fibonacci: %d\n" , i , t[ i ] );

}

}

2011. dec. 28. 16:02
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!