none
Gerar números possiveis RRS feed

  • Pergunta

  • Tenho que fazer um programa em c# o qual o usuário vai digitar 10 números, e o programa vai mostrar todas as combinações possíveis desses números ,mais sendo 6 dígitos.

    Como posso começar a fazer?


    TATA

    terça-feira, 29 de outubro de 2013 12:02

Todas as Respostas

  • TATA, deixa eu ver se entendi.

    Ele vai digitar 10 números quaisquer?
    Poderia ser por exemplo:

    123456789
    1
    2
    3
    4
    5
    6
    7
    8
    9

    Se sim, como seria tratado o primeiro número que tem mais de 6 digitos?

    Agora se forem 10 números com 6 ou menos digitos, você pode armazená-los em um array e utilizar 2 ponteiros para percorrer seu array da seguinte forma:

     string[] valores = new string[10];
                    string aux = "";
                    List<string> resultado = new List<string>();
                    for (int i = 0; i < valores.Length; i++)
                    {
                        for (int j = 0; j < valores.Length; j++)
                        {
                            if (i!=j)
                            {
                                aux = valores[i] + valores[j];
                                if (aux.Length==6)
                                {
                                    resultado.Add(aux);
                                }
                            }
                        }
                    }

    Acho que seria algo do tipo, porém esse é só um exemplo.
    O ideal seria montar um loop que concatenasse os valores enquanto o tamanho for menor que 6, e caso ultrapasse troque o último pelo próximo.


    "A vida é um paraíso, mas os homens não o sabem e não se preocupam em sabê-lo." Fiodor Dostoievski

    terça-feira, 29 de outubro de 2013 12:20
  • o usuário vai digitar 10 números qualquer ex: 1 2 3 4 5 6 7 8 9 10 e o programa tem que mostrar todas as combinações possíveis:

    1 2 3 4 5 6

    1 3 5 6 9 10

    10 9 8 7 4 3 

    (é não é 6 dígitos, são seis números )


    TATA

    terça-feira, 29 de outubro de 2013 12:26
  • Se são os 6 números fica mais fácil.

    Isso deve resolver:

     string[] valores = {"1","2","3","4","5","6","7","8","9","0" };
                string aux = "";
                List<string> resultado = new List<string>();
                for (int i = 0; i < valores.Length; i++)
                    for (int j = 0; j < valores.Length; j++)
                        if (i != j)
                            for (int k = 0; k < valores.Length; k++)
                                if (i != k && j != k)
                                    for (int l = 0; l < valores.Length; l++)
                                        if (i != l && j != l && k != l)
                                            for (int m = 0; m < valores.Length; m++)
                                                if( i !=m && j != m && k != m && l!=m)
                                                    for (int n = 0; n < valores.Length; n++)
                                                        if (i!=n && j!= n && k!= n && l!=n && m!=n)
                                                        {
                                                            aux += valores[i] + " " + valores[j] + " " + valores[k] + " " +
                                                                    valores[l] + " " + valores[m] + " " + valores[n];
                                                            resultado.Add(aux);
                                                            aux = "";
                                                        }
    Existem outras formas de fazer, seria bom você fazer uns testes e tentar evoluir esse código para treinar.

    "A vida é um paraíso, mas os homens não o sabem e não se preocupam em sabê-lo." Fiodor Dostoievski

    terça-feira, 29 de outubro de 2013 12:43