您好,我在C++中關於斐波那契試圖搜索谷歌的錯誤,但我沒有找到解決方案/解釋。斐波那契C++ - 從'int'無效轉換爲'int *'並初始化'int fibo(int,int *,int *)'的參數2/3'
有代碼:
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <cmath>
using namespace std;
int fibo(int,int*,int*);
int conta=0;
int main() {
int n,m,f;
int fibN=1;
int fibNMeno1=0;
cout << "Calcolo del numero di Fibonacci di indice n \n \n" << endl;
cout << "Introdurre n (positivo e minore di 47:" << endl;
cin >> n;
n=abs(n/1);
if (n<1) {
fibN=0;
}
else {
fibo(n,fibN,fibNMeno1);
}
cout << "\n Fibonacci di indice " << n << "vale: " << fibN << endl;
cout << "\n numero di chiamate ricorsive: " << conta << "\n\n" << endl;
}
int fibo(int n, int*pfn, int* pfnMeno1) {
int t;
int tFn,tFnMeno1,tF;
conta++;
if (n==1) {
*pfn=1; *pfnMeno1=0; return 1;
}
else {
t=n%2; n=n/2;
fibo(n,pfn,pfnMeno1);
tFn=(*pfn)*(*pfn)+2*(*pfn)*(*pfnMeno1);
tFnMeno1=(*pfn)*(*pfn) + (*pfnMeno1)*(*pfnMeno1);
if(t) {
tF=tFn;
tFn=tFn + tFnMeno1;
tFnMeno1=tF;
}
*pfn=tFn;
*pfnMeno1=tFnMeno1;
return 3;
}
}
哪裏錯誤?它如何在C++上使用*?
fibonacci.cpp: In function ‘int main()’:
fibonacci.cpp:23:22: error: invalid conversion from ‘int’ to ‘int*’ [-fpermissive]
fibo(n,fibN,fibNMeno1);
^
fibonacci.cpp:7:5: note: initializing argument 2 of ‘int fibo(int, int*, int*)’
int fibo(int,int*,int*);
^
fibonacci.cpp:23:22: error: invalid conversion from ‘int’ to ‘int*’ [-fpermissive]
fibo(n,fibN,fibNMeno1);
^
fibonacci.cpp:7:5: note: initializing argument 3 of ‘int fibo(int, int*, int*)’
int fibo(int,int*,int*);
非常感謝! – Tryneed