Considere siguiente proceso repetitivo para un número entero dado: si el número es 1, el proceso termina. De lo contrario, si es par se divide entre 2, y si es impar se multiplica por 3 y se le suma 1. Si empezamos con 6, por ejemplo, obtendremos la sucesión de números 6, 3, 10, 5, 16, 8, 4, 2, 1. La conjetura de Collatz dice que, a partir de cualquier número inicial, la sucesión obtenida siempre termina en 1.
Escriba un programa que permita verificar la
conjetura de Collatz para cualquier entero dado, y que imprima la secuencia correspondiente.
Codigo Fuente en C
#include <stdio.h>
int main ()
{
int i, num;
printf("Ingrese un numero: ");
scanf("%d",&num);
printf("\n=> ");
while(num!=1){
if(num%2 == 0)
num = num/2;
else
num = num*3 + 1;
printf("%d ", num);
}
getch();
return 0;
}
13 comentarios:
Merci! M'a beacoup aidé.
Y en java(Netbeans o Eclipse) como seria? Me aria el favor de mostrar.... Gracias
Gracias por el código : )
Da error en getch()
TheTatos1000, elimina lo del getch, y listo
Solo introduzcan la libreria #include para que funcione el getch
bueno para que funcionara el getch yo puse tambien la libreria #include
perfecto gracias
que paso con la variable i?
Escriba un programa que reciba cuatro calificaciones de un estudiante y devuelva el promedio y la máxima y la mínima calificación.
Poned el programa dentro de un bucle for y comprobareis un rango de números mucho más ámplio.
Publicar un comentario