Diario de un programador. Anexo B: Códigos
Secuencia Collatz: Programa que calcula la secuencia Collatz.
La secuencia de Collatz de un número entero se construye de la siguiente forma:
- si el número es par, se lo divide por dos;
- si es impar, se le multiplica tres y se le suma uno;
- la sucesión termina al llegar a uno.
La conjetura de Collatz afirma que, al partir desde cualquier número, la secuencia siempre llegará a 1. A pesar de ser una afirmación a simple vista muy simple, no se ha podido demostrar si es cierta o no.
C
Programa utilizado: Code Blocks 13.12
#include<stdio.h>
int main(void){
int numero;
printf("Ingresa un numero: ");
scanf("%d", &numero);
while(numero != 1){
if(numero % 2 == 0){
printf("%d,", numero);
numero = numero / 2;
}//fin if
else{
printf("%d,", numero);
numero = (numero * 3) + 1;
}//fin else
if(numero == 1){
printf("1\n");
}//fin if
}//fin while
return 0;
}
//Escrito por Gustavo J. Cerda Nilo, diciembre 2015
JAVA
Programa utilizado: Net Beans 8.0.1
Programa utilizado: Net Beans 8.0.1
import java.util.Scanner;
public class collatz {
public static void main(String[]args){
Scanner ingreso = new Scanner(System.in);
int numero;
System.out.print("Ingresa un numero: ");
numero = ingreso.nextInt();
while(numero != 1){
if(numero % 2 == 0){
System.out.print(numero + ",");
numero = numero / 2;
}//fin if
else{
System.out.print(numero + ",");
numero = (numero * 3) + 1;
}//fin else
if(numero == 1){
System.out.println("1");
}//fin if
}//fin while
}
}
//Escrito por Gustavo J. Cerda Nilo, diciembre 2015
PYTHON 3.5
Programa utilizado: Idle
Programa utilizado: Idle
numero = int(input("Ingresa un numero: "))
while numero != 1:
if numero % 2 == 0:
print("%d," % (numero), end = "")
numero = numero / 2
else:
print("%d," % (numero), end = "")
numero = (numero * 3) + 1
if numero == 1:
print("1")
#Escrito por Gustavo J. Cerda Nilo, diciembre 2015
SMALL BASIC
Programa utilizado: Small Basic 1.1
TextWindow.WriteLine("Secuencia Collatz")
TextWindow.Write("Ingresa numero: ")
numero = TextWindow.ReadNumber()
While numero <> 1
If Math.Remainder(numero,2) = 0 Then
TextWindow.Write(numero + ",")
numero = numero / 2
Else
TextWindow.Write(numero + ",")
numero = (numero * 3) + 1
EndIf
If numero = 1 Then
TextWindow.WriteLine("1")
EndIf
EndWhile
'Escrito por Gustavo J. Cerda Nilo, Noviembre 2015
necesito ese código pero en el lenguaje de QB64
ResponderEliminarno lo tienen?
a que se refiere el linea 12 en python
ResponderEliminarcon print("%d," % (numero), end = "")
que es la d?
Saludos. la "d" es un modificador de formato, quiere decir "aqui hay que colocar un número"
EliminarEn este enlace hay algunos ejemplos de como utilizar los modificadores de formato:
http://codigogx.blogspot.cl/2016/05/capitulo-25-variables-en-python.html
saludos
Mejor programa para crear el árbol para todos los números desde el 2 hasta el 50 por ejemplo, el 27 sale algo más largo
ResponderEliminarExcelente código en java crack, saludos desde León Guanajuato.
ResponderEliminarexelente me sirvio de mucho
ResponderEliminarComo seria con do while?
ResponderEliminar