terça-feira, 3 de abril de 2012

[Programação em C] Problema 3n + 1

Olá pessoal, nesse post iremos colocar a solução do problema 3n + 1, é um clássico problema de programação que se encontra no livro "Programming Challenges".

Clique aqui para visualizar o problema no site da UVA

Clique aqui para visualizar o problema no site do SPOJ

Se a entrada for o número 22, então a sequência de números será impressa: 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1. O algoritmo termina quando o valor 1 é impresso. No exemplo anterior, o comprimento do ciclo de 22 é 16.

A entrada é composta por dois números: i e j. Deve-se construir um algoritmo que determine o máximo ciclo nesse intervalo incluindo o i e j. A ideia que usamos para implementar a solução é ter uma função para calcular o comprimento do ciclo de cada número. Essa função retorna o comprimento e comparamos se ele é o maior. No final, apresentamos o i, j e o maior comprimento do ciclo. 

Clique aqui para fazer o download do código


Nenhum comentário: