RETOS C++

Iniciado por Stakewinner00, 20 Septiembre 2012, 18:20 PM

0 Miembros y 1 Visitante están viendo este tema.

Stakewinner00

Ya suvi un nuevo retos, si se me acude alguno más ya lo pondre.

Suerte con este ultimo.


za.asi

#151
Ya lo tengo, justo ayer hice algo muy parecido a esto así que solo tuve que modificarlo un poco xD

[b]Reto 15[/b]

#include <iostream>

using namespace std;

int main ()
{
   int n=0,
       n1=0,
       n2=1;
   cout << "Los 30 primeros numeros de la serie de fibonacci son: \n"
           << n << " ";
   for (int i=0; i<30; i++)
   {
       n=n1+n2;
       n2=n1;
       n1=n;
       cout << n << " ";
   }
   return 0;
}


Pd: Cuéntame el reto 14 que hice la semana pasada.

Pd2: Ahora empieza por 0.

Stakewinner00

ya te puse los puntos, nose por que no estabas en la lista.

cuando lo estuve haciendo hayer por la noche me costo un poco.

A otra cosa la serie creo que comienza por 0 pero da igual.

za.asi

Que yo sepa la serie comienza por 1, porque se refiere únicamente a los números naturales, que no incluyen al 0. Igualmente no estoy seguro, hace mucho que la conozco así que no mire la info que pusiste.

Stakewinner00

#154
ok pero en el link de la wikipedia comienza por 0.

en este link pone k se puede hacer de las dos formas http://es.wikipedia.org/wiki/N%C3%BAmero_natural

za.asi

Y por fin me salió el de escribir las palabras al revés (todavia no se usar bien los char...)

[b]Reto 10[/b]
#include <iostream>
#include <string>

using namespace std;

int main ()
{
   int i;
   string s;
   char a;
   cout << "Escribe una palabra: ";
   cin  >> s;
   for (i=s.length (); i>=0; i--)
   {
       a=s[i-1];
       cout << a;    
   }
   return 0;
}


Stakewinner00

#156
en este ultimo reto que puse tengo un problema. Y no se por k no divide bien.

el resultado que me da es el siguiente
Citar3524578/2178309::1.61803398874998904943822708447
5702887/3524578::1.61803398874985893129974101612
9227465/5702887::1.61803398874990866929124422313
14930352/9227465::1.61803398874988957345522067044
24157817/14930352::1.61803398874989690092718319647
39088169/24157817::1.61803398874989401434731917107
63245986/39088169::1.61803398874989512457034379622
102334155/63245986::1.61803398874989468048113394616
165580141/102334155::1.61803398874989490252573887119
267914296/165580141::1.61803398874989490252573887119
433494437/267914296::1.61803398874989490252573887119
701408733/433494437::1.61803398874989490252573887119
1134903170/701408733::1.61803398874989490252573887119
1836311903/1134903170::1.61803398874989490252573887119
(EL primer numero se divide por el segundo y tendria que dar lo que hay despues de los :: ) Pero en vez de darme el resultado de mi programa si hago la division con la calculadora el resultado de  1836311903/1134903170 es 1,6180339887498948478573727131276 y no se por k en mi progrma no da lo mismo.

Y esto me paza en el decimal  15 creo.

Aqui el codigo.
Código (cpp) [Seleccionar]
#include <iostream>
#include <vector>

using namespace std;

int main () {

cout.precision(30);
double long n[5];
n[0]=0;
n[1]=0;

cout << n[0] << endl;
n[2]=n[0];
n[1]++;
n[0]=n[1]+n[2];
n[3]=n[2];
for (int i=0;i!=47;i++) {
cout  << n[2] << "/" << n[1] <<"::"<< n[4] << endl;
n[2]=n[0];
n[1]=n[3];
n[3]=n[2];
n[0]=n[1]+n[2];
n[4]=n[2]/n[1];
}
}


Nose si me explique bien.

za.asi

#157
En mi código me calcula mal a partir del numero 38, me sale 24157816 cuando tendría que ser 24157817 y a partir de ahí todos mal. Alguno me podría decir si encuentra el error?
Ademas es muy raro que calcule bien todos los números anteriores y se equivoque ahí.

De paso pongo la solución al último reto, aunque lo he reducido a 40 iteraciones para que solo me de error en las 3 últimas.
A la izquierda sale el enésimo numero de fibonacci y a la derecha la división entre ese número y el anterior.

Reto 15b
#include <iostream>

using namespace std;

int main ()
{
   cout.precision (40);
   long double f=0,
         n,
         n1=1,
         n2=0;
   cout << "Los 50 primeros numeros de la serie de fibonacci son: \n";
   for (int i=0; i<50; i++)
   {
       n=n1+n2;
       n2=n1;
       n1=n;
       cout << n << " ";
       f=n1/n2;
       cout << "El numero phi es: " << f << endl;
   }
   cin  >> f;
   return 0;
}


Corregido, con long double me da correcto

Stakewinner00

#158
en tu codigo a partir de i=17 da todo el rato el mismo resultado. si cambias el float a double long creo que el resultado te llega hasta i=42

despues pongo los puntos, k voi a comer

leosansan

#159
En mi serie empieza desde 1:
Código (cpp) [Seleccionar]
#include <iostream>
using namespace std;

int main()
{
   long num,cont=0;
   cout << "Numeros de Fibonacci:" <<  "  1 ";
   long f0=0,f1=1;
   while (cont<29)
       {
           long f2 = f0 + f1;
           cout << ", " << f2;
           f0 = f1;
           f1 = f2;
           cont++;
       }
}

No se entiende bien el siguiente.