Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Entre para seguir isso  
Kamutra

[Resolvido] Factorial num array

Recommended Posts

Kamutra    0

Boa tarde galera.

Estou a tentar resolver o seguinte exercício:

Gerar aleatoriamente um vetor A com 10 elementos. Construir um vetor B de mesmo tamanho, sendo que cada elemento da matriz B seja o fatorial do elemento correspondente em A.

Dei alguns passos, mas não estou conseguindo o que realmente quero.

Fiz o seguinte:


public class VecFactorial {

public static void main(String args[]){

int A[]=new int[10];
int B[]=new int[10];
int factorial=1;

System.out.println("Elementos de A:");
for(int i=0;i<10;i++)
{
A[i]=1+(int)(Math.random()*9);
System.out.print(A[i] + " ");
}

System.out.println("\nElementos de B:");
for(int i=2;i<A[i];i++)
{
factorial*=A[i];
B[i]=factorial;
System.out.print(B[i] + " ");
}
}
}

Alguem me dá uma luz sobre o que fazer?

Agradeço a atenção de todos e aguardo explicações.

Muita Paz e fiquem com Deus.

Compartilhar este post


Link para o post
Compartilhar em outros sites
CaioMelqui    3

Olá, você precisa de um loop para percorrer todo o vetor A, e dentro desse loop deve colocar outro loop para calcular o fatorial de cada número e atribuir ao vetor B.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Kamutra    0
  • Autor do tópico
  • Olá CaioMelqui

    Obrigado pela ajuda, mas devo confessar que não consegui resolver com loop's encadeados.

    O que acontece quando uso loop's encadeados é a multiplicação do número em questão com o precedente.

    Por exemplo se os números no vector A forem 2 5 7 3 9, o programa imprime como sendo os valores do vector B "2 10 70 210 1890". Deve estar a acontecer algo que não sei definir. Talvés má interpretação da minha parte.

    Tentei resolver usando um método no caso o método Factorial e deu certo. Mas acontece que não é isso que pretendo. Pretendo calcular o factorial dos elementos do vector A e passar o resultado para o vector B sem usar o método Factorial.

    Se poderem me dar mais explicações sobre o que fazer fico desde já muito grato. Aí posto o código usando o método Factorial.

    Muita Paz e Muito Amor, fiquem com Deus.

    Conto Convosco.

    public class VecFactorial {

    static int Factorial(int n)
    {
    int factorial=1;
    //Acha o factorial de um número.
    for(int i=2;i<=n;i++)
    factorial*=i;
    return factorial;
    }

    public static void main(String args[]){

    int A[]=new int[10];
    int B[]=new int[10];

    System.out.println("Elementos de A:");
    for(int i=0;i<10;i++)
    {
    A[i]=1+(int)(Math.random()*10);
    System.out.print(A[i] + " ");
    }


    System.out.println("\n\nElementos de B:");
    for(int j=0;j<10;j++)
    {
    B[j]=Factorial(A[j]);
    System.out.println(A[j] + "!" + "=" +B[j] + " ");
    }
    }
    }

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    CaioMelqui    3

    a ideia é mais ou menos esta:


    for(int i=0;i<=9;i++)
    {
    for(int j=A[i];j>=2;j--){
    factorial*=j;
    }
    B[i]=factorial;
    System.out.print(B[i] + " ");
    factorial = 1;
    }

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    Kamutra    0
  • Autor do tópico
  • Muita Paz Galera

    Grande CaioMelqui

    Valeu pela ajuda era disto que eu andava atrás, brigadão pela força.

    Espero poder progredir para posteriormente também ajudar.

    Com todo o respeito pode-se fechar o tópico.

    Fiquem na paz de Deus.

    One Love

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    Goliathvv    8

    Caso o autor do tópico necessite, o mesmo será reaberto, para isso deverá entrar em contato com a moderação solicitando o desbloqueio.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    Visitante
    Este tópico está impedido de receber novos posts.
    Entre para seguir isso  





    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

    ×