2015-10-20 41 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例如(字符串,數組或其他任何東西的。) - 但這些方法通常會更難跟隨(和寫)。

相關問題