Ir ao conteúdo
  • Cadastre-se

Peça perdida


lucaskaique

Posts recomendados

Olá, galera!

Estou a muito tempo sem estudar programação e notei que estou péssimo. Não estou conseguindo nem resolver alguns programas de maratonas de programação. Se alguém quiser me indicar algum livro para que eu volte a ativa ficarei muito agradecido.

Alguém aí tá afim de dar uma dica?

Joãozinho adora quebra-cabeças, essa é sua brincadeira favorita. O grande problema, porém, é que às vezes o jogo vem com uma peça faltando. Isso irrita bastante o pobre menino, que tem de descobrir qual peça está faltando e solicitar uma peça de reposição ao fabricante do jogo. Sabendo que o quebra-cabeças tem N peças, numeradas de 1 a N e que exatamente uma está faltando, ajude Joãozinho a saber qual peça ele tem de pedir.

Tarefa

Escreva um programa que, dado um inteiro N e N - 1 inteiros numerados de 1 a N, descubra qual inteiro está faltando.

Entrada

A entrada contém um único conjunto de testes, que deve ser lido do dispositivo de entrada padrão (normalmente o teclado). A entrada contém 2 linhas. A primeira linha contém um inteiro N (2 ≤ N ≤ 1.000). A segunda linha contém N - 1 inteiros numerados de 1 a N (sem repetições).

Saída

Seu programa deve imprimir, na saída padrão, uma única linha, contendo o número que está faltando na sequência dada.

Exemplos

Entrada

3

3 1

Saída

2

__________________________________

Entrada

5

1 2 3 5

Saída

4

__________________________________

Entrada

4

2 4 3

Saída

1

Link para o comentário
Compartilhar em outros sites

Kaique,

Ao saber o número N, basta calcular a soma dos termos da P.A. (Progressão Aritmética), que, no caso do exercício, tem o primeiro termo como 1 e a razão 1. Feito isso, basta somar os números da segunda linha e calcular a diferença. Pronto, achou o termo faltante.

Ex.

N = 5 (1, 2, 3, 4, 5)

S(5) = 15

Os números digitados foram: 1 2 3 5, cujo somatório resulta 11.

15 - 11 = 4

[]'s

LNW

Link para o comentário
Compartilhar em outros sites

Kaique,

Ao saber o número N, basta calcular a soma dos termos da P.A. (Progressão Aritmética), que, no caso do exercício, tem o primeiro termo como 1 e a razão 1. Feito isso, basta somar os números da segunda linha e calcular a diferença. Pronto, achou o termo faltante.

Ex.

N = 5 (1, 2, 3, 4, 5)

S(5) = 15

Os números digitados foram: 1 2 3 5, cujo somatório resulta 11.

15 - 11 = 4

[]'s

LNW

Boa dica, sei que não foi explicado no contexto, mas se não faltasse 1 peça, e sim várias, pelo que vi assim de cara a sua lógica funcionaria apenas para 1 peças certo?

enfim, caso queira tentar com mais de uma peças, pode fazer a chamada "gambiarra", onde voce vai informar o numero da peça, e voce aloca no INDICE de um vetor o numero que voce informou.

pra ser mais prático.

ficaria assim:

DIGITEI: 1,2,5,6,8,9

estaria faltando as peças: 3,4,7. certo?

então a cada scan do numero da peça, o vetor nesse indice receberia 1 valor

+- assim


digite o numero que "veio na caixa";
scan numero;
vetor[numero] = 1

para isso funcionar, o seu vetor deve ser iniciado todo = 0, ou seja, fazer um for percorrendo todo ele com 0(zero)

para marcar que tem essa peça, ou seja, ficaria assim após digitar os números acima.


vetor[1] = 1;
vetor[2] = 1;
vetor[3] = 0;
vetor[4] = 0;
vetor[5] = 1;
vetor[6] = 1;
vetor[7] = 0;
vetor[8] = 1;
vetor[9] = 1;

daí, para dizer as peças que não tem, faz um for percorrendo todo ele, e verificando se o valor for = 0, ou, diferente de 1.

@edit: vi agora que sempre falta uma peça, porém creio que se for um exercício para escola/faculdade, verificar se falta mais de uma peça seria um ADICIONAL, certo? mostrar que pode fazer esse programa funcionar com mais de uma peça faltando.

Link para o comentário
Compartilhar em outros sites

  • 1 ano depois...

Espere que isso ajude !Fique com Deus

 

 

#include<stdio.h>
//Peça Perdida Eduardo R Delfino Fpu mg

int somarN(int n){//somar n : ex se n=5 faça 1+2+3+4+5
    
    if(n==1)
    return n;    
    else    
    return n+somarN(n-1);
        
}

int pecaQuebraCabeca(int vet[],int n){
    int a,b,t;
    int x;
    int s=0;        
    
    x=n+somarN(n-1);// chama a função somarN    
        
          for(int i=0;i<n-1;i++){// busca n-1
        
                    printf("Digite o numero %d = ",i+1);// valores para o vetor
        
             scanf("%d",&vet);
    
        s+=vet;// soma os valores
        
    a=x;// recebe o valor da função somarN
    b=s;// recebe o valor da soma dos valores do vet
    t=a-b; // E finaliza  
}
    return t;
}

int main(){
    int n;
    int vet[10];
    
    printf("Entre com n:");
    
    scanf("%d",&n);

    
                 printf("A peca que esta faltando = %d",pecaQuebraCabeca(vet,n));        
    
    

    
    
}


Espere que isso ajude !Fique com Deus

 

 

#include<stdio.h>
//Peça Perdida Eduardo R Delfino Fpu mg

int somarN(int n){//somar n : ex se n=5 faça 1+2+3+4+5
    
    if(n==1)
    return n;    
    else    
    return n+somarN(n-1);
        
}

int pecaQuebraCabeca(int vet[],int n){
    int a,b,t;
    int x;
    int s=0;        
    
    x=n+somarN(n-1);// chama a função somarN    
        
          for(int i=0;i<n-1;i++){// busca n-1
        
                    printf("Digite o numero %d = ",i+1);// valores para o vetor
        
             scanf("%d",&vet);
    
        s+=vet;// soma os valores
        
    a=x;// recebe o valor da função somarN
    b=s;// recebe o valor da soma dos valores do vet
    t=a-b; // E finaliza  
}
    return t;
}

int main(){
    int n;
    int vet[10];
    
    printf("Entre com n:");
    
    scanf("%d",&n);

    
                 printf("A peca que esta faltando = %d",pecaQuebraCabeca(vet,n));        
    
    

    
    
}

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!