Bueno, primeramente hola y
no vengo a que me hagan la tarea
, mas bien vengo a que me ayuden a mejorar el tiempo de ejecución de este programa que hice o bien si se les ocurre un algoritmo mejor pues sería bien recibido, pero explicado por que quiero aprender : ).
El programa tiene que resolver el mayor de los casos en tiempo <= 1 segundo y el mio tarda como 7.
aqui el problema en una imagen:
otro ejemplo de entrada: 13
otro ejemplo salida:4 6 7 9 10 11 12
¿Cómo podría hacerlo mas rápido, hasta tiempo <=1 segundo ? D:
Cita: #include <cstdlib>
#include <iostream>
using namespace std;
int vector[300000];
int main()
{
int numero,j,i,N;
cin>>N;
vector[0]=1;
vector[1]=2;
i=1;
while(numero<N)
{ i++;
vector[i]=vector[i-2]+vector[i-1];
numero=vector[i-1];
while(numero<vector[i]){
numero++;
if(numero!=3&&numero!=vector[i-1]&&numero!=vector[i]&&numero<N)
cout<<numero<<" ";
}
}
return 0;
}
mi algoritmo es simple, creo un numero fibonacci, me regreso al anterior numero fibonacci y cuento a la vez que imprimio hasta llegar al numero fibonacci que cree, y así sucesivamente D:, pero es muy tardado
.
¿alguna idea?, no precisamente en código pero ideas...
Saludos : ).