Solução por Rogério Júnior
A questão pede, dado o valor de N, quais o números positivos menores que N que não aparecem em uma lista de inteiros dada. Vamos criar um vetor de inteiros chamado $$marcado$$, que vai de 1 até N. Ele começará completamente zerado, para isso, usaremos a função $$memset$$ da $$cstring$$, que troca todos os bytes de um array. Se não a conhece, clique aqui. Para cada número $$i$$ que aparecer na lista, o valor de $$marcado[i]$$ será convertido para 1. Ao final da entrada, vamos imprimir, em ordem, todos os índices do vetor que continuam guardando o valor $$0$$, pois não foram citados na lista. Além disso, vamos ter salvo uma variável inteira $$controle$$ que também começará zerada. Quando encontrarmos uma valor no vetor que deva ser impresso, o valor de $$controle$$ passará a ser 1. Assim, se após examinarmos todo o vetor, $$controle$$ continuar com $$0$$, então nada foi impresso e deveremos imprimir “*”. Vamos ao código:
https://gist.github.com/rogerioagjr/4fa066dee49d39a6a38d
Nosso leitor Roger Benet também apresentou uma solução correta em java:
https://gist.github.com/rogerioagjr/740e226db173e746d035

Deixe um comentário