Solução Contando Estrelas

por

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


Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *