Tworzenie pętli for i macierzy zagnieżdzonej w bibliotece GMP

0

Witam Wszystkich, mam dość znaczący problem jak dla mnie z biblioteką GMP. Nie umiem poradzić sobie ze stworzeniem pętli i macierzy w bibliotece GMP. Weźmy jako przykład ciąg fbonacciego.

#include <iostream>
#include <gmpxx.h>
#include<math.h>
#include<gmp.h>

using namespace std;



int main()
{
 mpz_t x;
mpz_init(x);
mpz_class wynik;
unsigned long long int  i, p;
cout<<"podaj ile wyrazow ciagu foboncciego chcesz pokazac"<<endl;
cin>>p;
for(i=0;i<p;i++){
//w tym miejscu wyskakuje błąd cannot convert mpz_class
mpz_add(wynik, x-1, x-2);



}

    return 0;
}

Chcę tu pokazać przykładowo milionowy element ciągu fibonacciego, ale nie wiem jak wrzucić tablicę do pętli, ani ogólnie jak je zainicjować. Pewnie tylko się zbłażnię, ale niestety nie umiem tego problemu rozgryźć i pójść dalej, z biblioteką OMP poszło łatwiej a tu stoję jak rolnik sam w dolinie. Pozdrawiam i proszę o jakąś sugestię, bo anglojęzyczne strony niestety mi nie pomogły. Piszę w Code:blocks.

0

Mieszasz typ mpz_t z klasą mpz_class. Najprościej zadeklaruj x również jako mpz_class i używaj zwykłych operatorów:

#include <iostream>
#include <gmpxx.h>
#include<math.h>
#include<gmp.h>
 
using namespace std;

int main()
{
    mpz_class x;
    mpz_class wynik;
    unsigned long long int  i, p;
    cout<<"podaj ile wyrazow ciagu foboncciego chcesz pokazac"<<endl;
    cin>>p;
    for(i=0;i<p;i++){
        wynik += (x-1) + (x-2);
    }
    return 0;
}

Ale to tylko rozwiązanie problemu kompilacji, bo „algorytm” jest nieprawidłowy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1