Questão FC373170
Considere que um Técnico Programador escreveu um programa para ler um número inteiro de 6 dígitos. Após ler o número e se certificar que o mesmo possuía 6 dígitos, os dígitos foram
Algoritmos e Lógica de Programação
FCC · 2018
Considere que um Técnico Programador escreveu um programa para ler um número inteiro de 6 dígitos. Após ler o número e se certificar que o mesmo possuía 6 dígitos, os dígitos foram separados. Em seguida, cada um dos dígitos d1, d2, d3, d4, d5 e d6 foram inseridos em uma estrutura de dados. Depois foram retirados um a um da estrutura, multiplicados pelo valor posicional correto e somados, obtendo-se o número invertido. Caso o número de entrada fosse 123456 o resultado seria 654321. A estrutura de dados utilizada foi
- fila circular.
- fila não circular.
- pilha.
- lista linear do tipo FIFO.
- árvore binária de altura (log26 − 1).
Mostrar resposta e comentário
Gabarito
Certo
Comentário do professor
A estrutura correta é a pilha, que obedece à política LIFO (Last In, First Out). Ao inserir os dígitos d1, d2, d3, d4, d5, d6 na pilha, o último dígito empilhado será o primeiro a ser retirado, produzindo a ordem invertida dos dígitos.
Ao desempilhar você obtém, por exemplo, 6,5,4,3,2,1 para a entrada 123456. Cada dígito retirado é então multiplicado pelo seu valor posicional correto e somado para reconstruir o número invertido.
Formalmente, se r1..r6 são os dígitos desempilhados na ordem de saída, o número invertido é \( \sum_{i=0}^{5} r_{i+1}\times 10^{5-i} \). No exemplo: \(100000\cdot6+10000\cdot5+1000\cdot4+100\cdot3+10\cdot2+1\cdot1=654321\).
Conteúdo do catálogo FC Concursos · Atualizado em