Galera estou fazendo um trabalho e estou precisando de uma ajudinha
tenho que desenvolver um algoritmo que leia uma palavra e imprima todas as possibilidades de combinação dessa palavra…
Vou mostrar um exemplo aqui em baixo
tipo
Informe a palavra: abc
o programa deve imprimir:
abc
acb
bac
bca
cab
cba
E tem que ser na linguagem java espero que voces possam me ajudar…
desde ja agradeço!!!
1 - O tópico foi duplicado
2 - O que você já fez?
3 - Qual a dúvida?
4 - Não achou NADA no http://www.google.com.br ?
L
lokits5
Já fez algo? ou está no zero?
pois pedir dessa maneira ninguem vai querer dar o codigo prontu neh neguinho! ai tbm é palhaçada! :evil:
J
jonipinho
packagepermutacao;importjava.util.ArrayList;publicclassPermutacao{publicstaticvoidmain(String[]args){ArrayListlista=newArrayList();lista.add("1");lista.add("2");lista.add("3");ArrayListlpermutada=permuta(lista);for(inti=0;i<lpermutada.size();i++){String[]teste=(String[])lpermutada.get(i);System.out.print("\n");for(intj=0;j<teste.length;j++){System.out.print(teste[j]);}}System.exit(0);}privatestaticintfatorial(intnum){intvalor=1;for(inti=1;i<=num;i++){valor=valor*i;}returnvalor;}privatestaticArrayListpermuta(ArrayListlista){ArrayListlperm=newArrayList();ArrayListpermutacoes=newArrayList();intn=lista.size();intnrPerm=fatorial(n);intvaux[]=newint[n-1];intposBco[]=newint[n-1];for(inti=0;i<n-1;i++){vaux[i]=fatorial(n-1-i);}for(intk=0;k<nrPerm;k++){for(inti=0;i<n-1;i++){posBco[i]=0;}intsoma_k=k;intmultiplicando=n-1;intindice=0;while(soma_k>0){intmultiplicacao=vaux[indice]*multiplicando;if(multiplicacao<=soma_k){soma_k=soma_k-multiplicacao;posBco[indice]=multiplicando;multiplicando=n-1;indice++;}else{multiplicando--;if(multiplicando==0){indice++;multiplicando=n-1;}}}lperm.add(posBco.clone());}//inicia a permutaçãofor(intk=0;k<lperm.size();k++){intindice=n-1;int[]posicoes=(int[])lperm.get(k);String[]individuo=newString[n];for(inti=0;i<n;i++){individuo[i]="";}intid=0;for(inti=0;i<posicoes.length;i++){intposicao=posicoes[i];intvazio=0;while(vazio<posicao){if(individuo[id].equals("")){vazio++;}id++;}while(individuo[id].equals("")==false){id++;}individuo[id]=(String)lista.get(indice);id=0;while(individuo[id].equals("")==false){id++;}indice--;}//últimofor(inti=0;i<individuo.length;i++){if(individuo[i].equals("")){individuo[i]=(String)lista.get(0);}}permutacoes.add(individuo.clone());}returnpermutacoes;}}
Bom o algoritmo eu ja tenho ele aqui a minha duvida agora como faço para inserir os dados, no meu exemplo ja estou iniciando a minha lista com alguns valores
porem quero q esses valores sejam informados pelo usuario.... talvez minha pergunta seja ate boba, mas nao estou muito acostumado a programar em java....
Desde ja agradeço a quem puder ajudar.. Abraço!!!
drsmachado
Visualmente, use o
JOptionPane.showInputDialog("Valor"); Ele retorna uma String.
No console, pesquise sobre a classe Scanner