Ir ao conteúdo
  • Cadastre-se

williamtsus

Membro Júnior
  • Posts

    10
  • Cadastrado em

  • Última visita

posts postados por williamtsus

  1. Bom glr,estou desenvolvendo um código do problema de josephus usando recursão,mas empaquei em uma parte e não sei mais como continuar,descobrir o que falta para terminar e arrumar o código,gostaria de pedir ajuda,desde já agradeço

     

    #include <stdio.h>
    #define MAX 10000
    int josephus(int v[MAX],int pessoas,int pulo,int posicaodoassassino)
    {
        if(pessoas==1)
            return v[0];
        else
        {
    
    
            if(posicaodoassassino>pessoas-1)
            {
                posicaodoassassino=((pessoas-1)-posicaodoassassino)+pulo;
            }
             posicaodoassassino=pulo+posicaodoassassino;
            int i = posicaodoassassino;
            for(i=posicaodoassassino;i<pessoas-1;i++)
            {
                v[i]=v[i+1];
            }
            if(posicaodoassassino>pessoas-2)
            {
                posicaodoassassino=((pessoas-2)-posicaodoassassino)+pulo;
            }
    
    
            return josephus(v,pessoas-1,pulo,posicaodoassassino);
        }
    }
    int main()
    {
    int n,v[MAX],i,pessoas,pulo;
    scanf("%d",&n);
    
    while (n--)
        {
            scanf("%d%d",&pessoas,&pulo);
            for(i=0;i<pessoas;i++)
            {
                v[i]=i+1;
            }
            pulo=pulo-1;
            printf("%d\n",josephus(v,pessoas,pulo,0));
        }
    return 0;
    }

     

  2. Linguagem:C

     

    (problema de fatorial) Aparentemente 10% dos casos dá erro,já fico grato pela ajuda.Aparentemente meu código está correto,mas estou recebendo 10% de erros no uri (problema 1161)

     

    Bom galera, gostaria de ajuda a identificar o erro

     

    Leia dois valores inteiros M e N indefinidamente. A cada leitura, calcule e escreva a soma dos fatoriais de cada um dos valores lidos. Utilize uma variável apropriada, pois cálculo pode resultar em um valor com mais de 15 dígitos.

    Entrada

    O arquivo de entrada contém vários casos de teste. Cada caso contém dois números inteiros M (0 ≤ M ≤ 20) e N (0 ≤ N ≤ 20). O fim da entrada é determinado por eof.

    Saída

    Para cada caso de teste de entrada, seu programa deve imprimir uma única linha, contendo um número que é a soma de ambos os fatoriais (de M e N).

     

    a entrada ele dá 4,4 que na saída dá 48;0,0 que na saída dá 2;0,2 que na saída dá 3,isso tudo meu programa conseguiu executar,todavia,tá dando 10% de erro não sei porquê

     

    #include <stdio.h>
    #include <stdlib.h>
     
    int main() {
     
        unsigned long long intlongo,acumuladorm=1,acumuladorn=1;
        
        int M,N;
        
        while(1>0)
        
        {
            scanf("%d%d",&N,&M);
            
            while(M>0)
            {
                
                acumuladorm=acumuladorm*M;
                M=M-1;
            }
             while(N>0)
            {
                
                acumuladorn=acumuladorn*N;
                N=N-1;
            }
            intlongo=acumuladorm+acumuladorn;
            acumuladorm=1;
            acumuladorn=1;
            printf("%lld\n",intlongo);
            if(feof(stdin)) return 0;
        
        }
        
     
        return 0;
    }

     

    • Curtir 1
  3. Bom galera,não sei como entender esses tantos de ifs e elses,se por exemplo o primeiro if não for executado qual dos elses vai ativar?

     

    Grato pela resposta

     

    #include <stdio.h>
    
    /*programa que verifica qual é maior,intermediario e menor*/
    main ()
    {
    int x,y,z;
    printf ("Entre com os numeros(exemplo: 10 20 30):");
    scanf ("%d %d %d", &x, &y, &z);
    printf ("\n\n");
    
    if (x>y)
        {
        if (x>z)
            {
            if (y>z)
                {
                printf (" a ordem crescente é: %d %d %d", z, y, x);
                }
            else//(z>x)
                {
                printf ("a ordem crescente é: %d %d %d", y, z, x);
                }
            }
        else//(z>x)
            {
            printf ("a ordem crescente é: %d %d %d", y, x, z);
            }
        }
    else//então y>x
        {
        if (y>z)
            {
            if (x>z)
                {
                printf ("a ordem crescente é: %d %d %d", z, x, y);
                }
            else//(z>x)
                {
                printf ("a ordem crescente é: %d %d %d", x, z, y);
                }
            }
        else//(z>y)
            {
            printf ("a ordem crescente é: %d %d %d", x,y,z);
            }         
        }
    }

     

    • Curtir 1
  4. Já fico grato pela resposta, Leia a hora inicial e a hora final de um jogo. A seguir calcule a duração do jogo, sabendo que o mesmo pode começar em um dia e terminar em outro, tendo uma duração mínima de 1 hora e máxima de 24 horas.

     

    #include <stdio.h>
    int main()
    {
        int hora1,hora2,jogo;
        scanf("%d%d",&hora1,&hora2);
        if (hora1==hora2)
            {
            jogo=24;
            }
        else
            {
            if ("hora1>hora2")
                {
                jogo = (24-hora1) + hora2;
                }
            else
                    {
                    jogo = hora2 - hora1;
                    }
            }
        printf("%d",jogo);
        return 0;
    }
    adicionado 2 minutos depois

    Pelo que eu percebi, não tá executando o segundo "else", o que eu digitei errado para não executar ele?Ainda sou novo nisso kk

    • Curtir 1

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!