Você está aqui: C++ ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Desafio do número ausente. Dado um vetor de números naturais 1..n, encontre o valor ausente - Desafio de Programação Resolvido em C++Quantidade de visualizações: 667 vezes |
Pergunta/Tarefa: Dado o vetor: int valores[] = {1, 8, 7, 2, 6, 5, 3}; Encontre o elemento ausente na sequência de valores do vetor, sabendo que o primeiro valor é 1 e o último elemento é 8. Perceba que o vetor não precisa estar ordenado. Além disso, o entrevistador se certificará de que os valores serão sempre positivos e não haverá valores repetidos. Sua saída deverá ser parecida com: O número ausente é: 4 Dica: Use a fórmula n * (n + 1) / 2 para facilitar a resolução do exercício. Veja a resolução comentada deste exercício usando C++: #include <string> #include <iostream> using namespace std; int main(int argc, char *argv[]){ // vamos declarar um vetor de inteiros faltando // um valor na sequência (não necessariamente ordenada) // Note a ausência do número 4 int valores[] = {1, 8, 7, 2, 6, 5, 3}; int i, soma_n, ausente, soma_elementos; int quant = 8; // tamanho do vetor + 1 // o primeiro passo é obter a soma de 1..n elementos // natuais usando a fórmula n*(n+1)/2 soma_n = (quant * (quant + 1)) / 2; // agora vamos somar os elementos do vetor soma_elementos = 0; for(i = 0; i < 7; i++){ soma_elementos = soma_elementos + valores[i]; } // agora calculamos o valor ausente ausente = soma_n - soma_elementos; // vamos mostrar o resultado cout << "O número ausente é: " << ausente << endl; system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } |
![]() |
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de C++ |
Veja mais Dicas e truques de C++ |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |