Tengo el siguiente problema:
Citar
Problema
Escribe un programa que imprima en pantalla todos los números enteros positivos estrictamente menores que N que NO pertenezcan a la serie de Fibonacci.
Entrada
Tu programa deberá de leer del un solo número entero 2<=N<=30000 (30 mil)
Salida
Tu programa deberá imprimir en pantalla todos los números enteros positivos menores que N que no formen parte de la serie de Fibonacci, deberá imprimirlos en orden creciente, separados por espacios.
Ejemplo
Entrada
9
Salida
4 6 7
Escribe un programa que imprima en pantalla todos los números enteros positivos estrictamente menores que N que NO pertenezcan a la serie de Fibonacci.
Entrada
Tu programa deberá de leer del un solo número entero 2<=N<=30000 (30 mil)
Salida
Tu programa deberá imprimir en pantalla todos los números enteros positivos menores que N que no formen parte de la serie de Fibonacci, deberá imprimirlos en orden creciente, separados por espacios.
Ejemplo
Entrada
9
Salida
4 6 7
Básicamente, es un programa que imprima los números menores de N que no pertenezcan a la serie Fibonacci.
Hice el siguiente código:
Código
#include <stdio.h> int main() { int num, fb=0, n=0, p=1, i=1; scanf("%d", &num); while (fb < num) { fb=n+p; n=p; p=fb; if (i != p) printf("%d ", i); i++; } }
Input:
Citar
9
Output
Citar
4 5 6
Pero simplemente no entiendo por qué no funciona, sé que es un problema de lógica mío, pero no lo veo.
Gracias de antemano y disculpen la molestia.
Debe ser tan fácil, pero no he podido averiguarlo.