Kezdőoldal » Tudományok » Egyéb kérdések » Hogyan kell megirni a fibonacc...

Hogyan kell megirni a fibonacci sor programot c/ben vektor (v[i]) segitsegevel?

Figyelt kérdés

A kibonacci sort kene kiiratni a vekrot hasznalataval.

Surgos lenne

Elore is koszonom a valaszokat



2014. jan. 10. 10:53
 1/2 anonim ***** válasza:

#include <vector>

#define REP(i,n) for (int i = 1; i <= n; i++)

using namespace std;


typedef long long ll;

typedef vector<vector<ll> > matrix;

const ll MOD = 1000000007;

const int K = 2;


// computes A * B

matrix mul(matrix A, matrix B)

{

matrix C(K+1, vector<ll>(K+1));

REP(i, K) REP(j, K) REP(k, K)

C[i][j] = (C[i][j] + A[i][k] * B[k][j]) % MOD;

return C;

}


// computes A ^ p

matrix pow(matrix A, int p)

{

if (p == 1)

return A;

if (p % 2)

return mul(A, pow(A, p-1));

matrix X = pow(A, p/2);

return mul(X, X);

}


// returns the N-th term of Fibonacci sequence

int fib(int N)

{

// create vector F1

vector<ll> F1(K+1);

F1[1] = 1;

F1[2] = 1;


// create matrix T

matrix T(K+1, vector<ll>(K+1));

T[1][1] = 0, T[1][2] = 1;

T[2][1] = 1, T[2][2] = 1;


// raise T to the (N-1)th power

if (N == 1)

return 1;

T = pow(T, N-1);


// the answer is the first row of T . F1

ll res = 0;

REP(i, K)

res = (res + T[1][i] * F1[i]) % MOD;

return res;

}

2014. jan. 10. 13:31
Hasznos számodra ez a válasz?
 2/2 A kérdező kommentje:
Köszönöm szépen! Sokat segítettél
2014. jan. 11. 13:14

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!