LWF - formato non valido

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?

Posteresti il sorgente? :slight_smile:

#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” :wink:

P.S. Sei sicuro che i primi 15 numeri di Fibonacci ti bastino per input fino a 1 milione?

1 Mi Piace