elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  Problema de Collatz
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema de Collatz  (Leído 791 veces)
7hongo7

Desconectado Desconectado

Mensajes: 27



Ver Perfil
Problema de Collatz
« en: 24 Marzo 2013, 02:52 »

Hola de nuevo yo jejeje causando molestias, bueno mi duda es como calcular la longitud del ciclo y como imprimo en pantalla el numero mas grande, tengo que hacer el problema de Collatz y este es mi código:

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
   int num=0;
   scanf("%d",&num);
   while(num>1){
      if(num%2==0){
         num = num/2;
      }else{
         num = 3*num+1;
      }
      printf("%d\n",num);
   }
   return 0;
}

y tengo que imprimir tambien en pantalla el valor l que es la longitud del calculo y m que es el número mas grande de todos los calculos, creo yo que se hace con un ciclo do...while pero realmente no lo se gracias por su ayuda....


En línea

rir3760


Desconectado Desconectado

Mensajes: 1.642


Ver Perfil
Re: Problema de Collatz
« Respuesta #1 en: 24 Marzo 2013, 03:45 »

Para conocer el numero de valores en la serie inicializas fuera del bucle un contador con el valor uno, dentro del bucle lo incrementas en una unidad por cada iteracion.

Para conocer el máximo otro contador, este inicia con el numero introducido por el usuario. Dentro del bucle si el siguiente valor de la serie es 3n + 1 verificas si este es el nuevo máximo.

Un saludo


En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
7hongo7

Desconectado Desconectado

Mensajes: 27



Ver Perfil
Re: Problema de Collatz
« Respuesta #2 en: 26 Marzo 2013, 17:13 »

Muchas gracias hermano lo hice y me funciono ;-) ;-) ;-) ;-) aunque me tarde algo en entenderle  :xD :xD 
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines