ciao
questo codice mi permette di fare le permutazioni con ripetizione fino ad una stringa lungacodice:public static void main(String[] args) { String set = "abc"; String v=""; int numSet=0; do { numSet++; String app = null; if(numSet == 1) { for(int i=0 ;i<set.length() ;i++) { v=""; v += set.substring(i, i+1); System.out.println( v); /* for(int j=0;j<3;j++) { v+= set.substring(j, j+1); System.out.println(v); v = set.substring(i, i+1); }*/ } } else if(numSet == 2) { for(int i=0 ;i<set.length();i++) { v=""; v += set.substring(i, i+1); //System.out.println("primo valore v: " + v); for( int j=0;j<set.length();j++) { v+= set.substring(j, j+1); System.out.println(v); v = set.substring(i, i+1); } } } else if(numSet == 3) { for(int i=0 ;i<set.length();i++) { v=""; v += set.substring(i, i+1); //System.out.println("primo valore v: " + v); for( int j=0;j<set.length();j++) { v = set.substring(i, i+1); v+= set.substring(j, j+1); app= v; // System.out.println(v); // v = set.substring(i, i+1); for(int x = 0; x < set.length() ; x++) { v+= set.substring(x, x+1); System.out.println(v); v= app; } } } } else if(numSet == 4) { String primaLett; String secLett; String terzLett; for(int i=0;i<set.length();i++) { v = ""; v+= set.substring(i, i+1); primaLett = v; for(int j=0;j<set.length();j++) { v = primaLett; v+=set.substring(j, j+1); secLett = v; for(int z=0;z<set.length();z++) { v = secLett; v+= set.substring(z, z+1); terzLett = v; for(int x = 0; x < set.length(); x++) { v = terzLett; v+= set.substring(x, x+1); System.out.println(v); } } } } } }while(numSet!=4); }
4 caratteri.
il codice è molto ripetitivo e perciò ho pensato che ci dev'essere un'altra soluzione per esempio con la ricorsione.. solo che non riesco a trovare una soluzione.
qualcuno di voi mi può aiutare?
grazie mille

Rispondi quotando