Descreva um algoritmo que considere como entrada uma lista de
números inteiros distintos e encontre a localização do maior número inteiro par na lista ou retorne 0 se não houver números inteiros pares na lista.
Passo 1
O problema recebe como entrada uma lista de
números inteiros distintos, digamos
, e pede para encontrar a posição do maior número inteiro par nessa lista ou retornar
se não existir nenhum número par. O conteúdo principal é um algoritmo de busca linear que testa cada elemento e mantém o maior valor par encontrado até o momento.
Passo 2
Inicializamos duas variáveis auxiliares antes de varrer a lista:
– , que vai guardar a posição do maior par (fica
se não achar nenhum).
– (Opcional) não precisa receber valor inicial fixo, pois só será definido quando acharmos o primeiro par.
–
– (Opcional)
Passo 3
Fazemos um único laço de
até
para examinar cada elemento
:
- Testamos se
é par, ou seja, se
- Se for par e
(primeiro par achado) ou , então atualizamos
Passo 4
Ao fim do laço,
vale a posição do maior par encontrado, ou continua
se nenhum par apareceu. Basta então retornar
.
Resposta
Segue o pseudocódigo completo:
Algoritmo MaiorPar(L, n)
posMaxPar ← 0
para i de 1 até n faça
se L[i] mod \(2=0\) então
se posMaxPar \(=0\) ou L[i] > maxPar então
maxPar ← L[i]
posMaxPar ← i
fim se
fim se
fim para
retorne posMaxPar