ATPS: CONSTRUÇÃO DE ALGORITMOS
Por: Wellington Silva • 17/6/2015 • Trabalho acadêmico • 602 Palavras (3 Páginas) • 186 Visualizações
[pic 1]
FACULDADE ANHANGUERA
DE
BELO HORIZONTE
Wellington Mendes da Silva RA3227023494
ATPS: CONSTRUÇÃO DE ALGORITMOS
Terceira e Quarta etapa
Belo Horizonte
26/11/2014
Problema 3
João quer montar um painel contendo diferentes números de LEDs. Como não têm muitos, não tem certeza se vai ser capaz de montar o número desejado. Considerando-se a configuração dos LEDs conforme consta o exemplo na Figura 1, fazer um algoritmo que ajude João descobrir quantos LEDs são necessários para montar o número.
[pic 2]
Entrada
A entrada contém um número inteiro N, (1 ≤ N ≤ 2000) correspondente ao número de casos de teste, seguido por N linhas, cada linha contendo um número (1 ≤ V ≤ 10100) que corresponde ao valor que João quer representar com LEDs.
Saída
Para cada caso de teste, imprimir uma linha contendo o número de LEDs que João precisa para representar o valor desejado, seguido da palavra "leds".
Pseudocódigo
algoritmo "led"
// Função :
// Autor :
// Data : 24/11/2014
// Seção de Declarações
var
qtd: vetor[0..9] de inteiro
N, V, aux, alg, i, qtd_leds: inteiro
inicio
qtd[0] <- 6 //atribuindo testes
qtd[1] <- 2
qtd[2] <- 5
qtd[3] <- 5
qtd[4] <- 4
qtd[5] <- 5
qtd[6] <- 6
qtd[7] <- 4
qtd[8] <- 7
qtd[9] <- 6
escreval("Digite o numero de testes:") //numero de testes
leia(N)
enquanto ((N < 1) ou (N > 2000)) faca
escreva("Valor inválido. Informe o número de casos de teste entre 1 e 2000: ")
leia(N)
fimenquanto
para i de 1 ate N faca
escreval("Digite um numero:")
leia(V)
enquanto ((V < 1) ou (V > 135000)) faca
escreva("Valor inválido. Informe um número entre 1 e 135000: ")
leia(V)
fimenquanto
qtd_leds <- 0
aux <- V
enquanto (aux > 0) faca
alg <- aux % 10
qtd_leds <- qtd_leds + qtd[alg]
aux <- aux \ 10
fimenquanto
escreval("Número: ", V, " -> ", qtd_leds, " leds")
fimpara
fimalgoritmo
Problema 4
O Problema de Josephus é definido como mostrado a seguir. Vamos supor que N pessoas estão organizadas em um círculo e que temos um inteiro positivo M ≤ N. Começando com uma primeira pessoa designada, prosseguimos em torno do círculo, removendo cada Milésima pessoa. Depois que cada pessoa é removida, a contagem prossegue em torno do círculo restante. Esse processo continua até todas as M pessoas terem sido removidas. A ordem em que as pessoas são removidas do círculo define a permutação de Josephus de (N, M) dos inteiros 1, 2, ..., N.
Entrada
Definir como NC (1 ≤ NC ≤ 30) os casos de teste. Em cada caso de teste de entrada haverá um par de números inteiros positivos N (1 ≤ N ≤ 10000) e M (1 ≤ M ≤ 1000). O número N representa a quantidade de pessoas do círculo, numerados de 1 a N. O número M representa o tamanho do passo entre duas pessoas no círculo.
Saída
Para cada caso de teste, haverá uma linha de saída no seguinte formato: Case N: M sempre com um espaço antes de N e M. Sendo M a pessoa que restou no círculo.
Pseudocódigo
algoritmo "Problema de Josephus"
...