Ciao,
sto cercando di risolvere il problema “Crittografia LWF”.
Eseguendo il programma sul computer sembrerebbe che tutto funzioni ma quando lo incollo nel correttore e lo invio tutti i testcase ad eccezione del primo mostrano il messaggio “Formato non valido”.
Qualche consiglio?
#include<stdio.h>
#include<stdlib.h>
int fibonacci[15];
int codifica[15];
void faiSequenza()
{
int i;
fibonacci[0]=1;
fibonacci[1]=1;
codifica[0]=0;
codifica[1]=0;
for(i=2; i<15;i++)
{
fibonacci[i]=fibonacci[i-1]+fibonacci[i-2];
codifica[i]=0;
}
}
int trovaFine()
{
int i=14;
while (codifica[i]==0)
i--;
return 14-i;
}
main()
{
faiSequenza();
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
int n;
scanf("%d", &n);
int i=14;
if(n%2==1)
{
n=n-1;
codifica[0]=1;
}
while(n>=0 && i>0)
{
if(n>=fibonacci[i])
{
codifica[i]=1;
n=n-fibonacci[i];
}
else
codifica[i]=0;
i=i-1;
}
for(i=0; i<(trovaFine()-1); i++)
printf("%d", codifica[i]);
}
Rivedi la funzione “trovaFine” 
P.S. Sei sicuro che i primi 15 numeri di Fibonacci ti bastino per input fino a 1 milione?
1 Mi Piace