Sto provando a creare una semplice calcolatrice di fibonacci in C ma durante la compilazione di gcc
mi viene detto che mi mancano le funzioni di pow e floor. Cosa c'è che non va?Riferimento indefinito a `pow 'e` floor'
Codice:
#include <stdio.h>
#include <math.h>
int fibo(int n);
int main() {
printf("Fib(4) = %d", fibo(4));
return 0;
}
int fibo(int n) {
double phi = 1.61803399;
return (int)(floor((float)(pow(phi, n)/sqrt(5)) + .5f));
}
uscita:
[email protected]:~/work/c/fibo$ gcc fib.c -o fibo
/tmp/ccNSjm4q.o: In function `fibo':
fib.c:(.text+0x4a): undefined reference to `pow'
fib.c:(.text+0x68): undefined reference to `floor'
collect2: ld returned 1 exit status
Poiché la precisione in virgola mobile non è infinita, questo darà risposte errate per valori non troppo elevati di 'n' – vonbrand