6 abr 2011

Problema "Sucesión de ULAM"

La siguiente se llama conjetura de ULAM en honor del matematico S.Ulam

  • Comience con cualquier entero positivo
  • Si es par, dividalo entre 2; si es impar, multipliquelo por 3 y agreguele 1.
  • Obtenga enteros sucesivamente repitiendo el proceso
Al final, obtendra el número 1, independientemente del entero inicial, Por ejemplo, cuando el entero inicial es 26, la secuencia será: 26,13,40,20,10,5,16,84,2,1.

Construya un diagrama de flujo y su codigo correspondiente que lea un numero entero positivo y obtenga e imprima la sucesion de ULAM (tambien conocido como Conjetura de Collatz)

Datos:
N, es una variable de tipo entero, que representa el número que ingresa.

Diagrama de Flujo


Codigo Fuente Visual Basic


Module problema_320

    Sub Main()
        Console.Write("Ingrese número : ")
        Dim N = Val(Console.ReadLine)
        If N > 0 Then
            Console.WriteLine(N)
            While N <> 1
                If (N Mod 2) = 0 Then
                    N = N \ 2
                Else
                    N = N * 3 + 1
                End If
                Console.WriteLine(N)
            End While
        Else
            Console.Write("N tiene que ser un entero positivo")
        End If
        Console.ReadLine()
    End Sub

End Module
Resultado

5 comentarios:

Adnarg dijo...

Después de hacer el diagrama de flujo de la serie de Ulam, se me pide ahora asignar un caracter para que se repita dependiendo del número que salga. Por ejemplo, si sale dos, se tiene que imprimir **, si el número es 10, **********...

Lo que no sé es cómo hacer esa asociación del número con el caracter para que, en lugar del número, imprima el caracter en pantalla.

Anónimo dijo...

es una iteración de n veces el carácter

sub imprimir(byval n as integer)
for i =0 to n
console.write("*")
next
console.writeLine("")
end sub

Anónimo dijo...

pero este paso como lo creo en Pseudocódigo en PseInt?

Unknown dijo...

Como pondría ese código en Python 3?

Anónimo dijo...

Como seria con ciclo for en ligar de while

Publicar un comentario

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | cna certification