codice:
#include <cstdlib>
#include <iostream>
using namespace std;
void inserisci(int,int,int v[]);
int fib(int v[],int &,int &,int,int,int,int);
int confrfibo(int v[],int,int&,int,int,int,int);
int main(){
int n,k=0,j=1,fibo=0,somma=0,i=0;
bool diverso=false;
cout<<"Inserisci il numero di elementi del vettore";
cin>>n;
n=8;
//int v[n-1];
//inserisci(0,n-1,v);
int v[9]={0,1,3,8,11,13,21,34,701408733};
system("cls");
for(int i=0;i<9;i++) cout<<v[i]<<" ";
cout<<"\n\n";
while(i<9 && !diverso){
if(v[i]==0) {
cout<<v[i]<<" ";
i++;
somma++;
}
else diverso=true;
}
fib(v,k,j,fibo,k,n,somma);
system("pause");
return 0;
}
void inserisci(int k, int n, int v[]){
if(k>n) return;
else{
cout<<"inserisci un valore: ";
cin>>v[k];
return inserisci(k+1,n,v);
}
}
int fib(int v[],int &n,int &m,int fibo,int i,int riemp,int somma){
fibo=n+m;
if(fibo>v[i]){
confrfibo(v,m,somma,i,riemp,n,m);
}
else {
n=m;
m=fibo;
return fib(v,n,m,fibo,i,riemp,somma);
}
}
int confrfibo(int v[],int fibo, int &somma,int i, int riemp,int n, int m){
if(v[i]==fibo){
cout<<v[i]<<" ";
if(i<riemp)
return fib(v,n,m,fibo,i+1,riemp,somma+1);
else cout<<"\nI numeri i fibonacci presenti nel vettore assegnato sono: "<<somma+1<<"."<<endl;
}
else if((n+m)>v[i]){
if(i<riemp)
return fib(v,n,m,fibo,i+1,riemp,somma);
else cout<<"\nI numeri i fibonacci presenti nel vettore assegnato sono: "<<somma<<"."<<endl;
}
else return fib(v,n,m,fibo,i,riemp,somma);
}