2015-10-20 2 views
0

У меня есть программа, которая печатает все возможности перестановок для данной строки. Но он является статическим, я жестко закодирован 3 для циклов, предполагая, что строка будет иметь длину 3. Но если мне нужно сделать ее динамической, пользователь может ввести ввод строки длиной 5. Так что я спрашиваю, если Я могу вводить петли в соответствии с вводом пользователя?Как сделать следующий код динамическим/можно вводить для циклов?

import java.util.*; 
import java.lang.*; 

    class Ideone 
    { 
     public static void main (String[] args) throws java.lang.Exception 
     { 
      // your code goes here 
      String input = "abc"; 
      int i=0,j=0,k=0; 
      for(i=0;i<3;i++){ 
       for(j=0;j<3;j++){ 
        for(k=0;k<3;k++){ 
         System.out.println(input.charAt(i)+""+input.charAt(j)+""+input.charAt(k)); 
        } 
       } 
      }  
     } 
    } 
+2

Рекурсия обычно используется для таких задач, например. http://stackoverflow.com/a/4240323/1413133 –

+0

Рекурсивная функция! – hurricane

+0

Есть ли альтернатива рекурсии, так как я не очень хорошо разбираюсь в этом – gates

ответ

0

Неа, распылительные петель не то, что это возможно (к счастью, это сделало бы язык беспорядок!)

Такие задачи, как это обычно достигается с помощью рекурсии, которая может быть легко использована для генерировать перестановки

Если вы действительно не хотите использовать рекурсию есть и другие способы вокруг него, вы можете рассчитать перестановки via rotation in loops например (строк, массивов или что-нибудь еще.) - но эти подходы, как правило, будет сложнее следовать (и писать.)

Смежные вопросы