Ir ao conteúdo
  • Cadastre-se
lucaskaique

Peça perdida

Recommended Posts

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

Compartilhar este post


Link para o post
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

Compartilhar este post


Link para o post
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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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));        
    
    

    
    
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×