Salve a tutti! ho scritto un programma su dev c++ sul mio compilatore windows, runna perfettamente senza intoppi. ho provato nei pc del laboratorio della mia università (linux) e va in segmentation fault.
ecco il codice (calcola il numero di partizioni in addendi appartenenti alla successione di fibonacci di un generico numero n):
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
int hereYouAre(int);
int part(int , int, int);
int maxFib(int, int*, int*);
int main(){
int n, x, y;
scanf("%d",&n);
assert(n>=0);
printf("%d\n",hereYouAre(n));
return 1;
}
int hereYouAre(int n)
{
int x, y;
maxFib(n,&x,&y);
return part(n, x, y);
}
int part(int n, int x, int y)
{
if (n==0) return 1;
if (n<0) return 0;
if (x==1) return 1;
return part(n-x,x,y)+part(n,y,x-y);
}
int maxFib(int n, int *x, int *y)
{
int a=0;
int c=1;
int g;
while(g<=n)
{
g=c+a;
a=c;
c=g;
}
*x=a;
*y=g-a;
return 1;
}
grazie in anticipo!