怎么做递归

时间:2015-11-08 23:52:43

标签: java recursion

我想读字符串

  

如果用户输入“H”打印“H”如果输入“G”打印HGH如果打印“O”打印HGHOHGH   如果打印“A”打印HGHOHGHAHGHHGH

我想将代码更改为递归

public static void Pattern(String c ){
    if (c.equals("H")==true) {
        System.out.println ("H");
    }
    else if (c.equals("G")==true) { 
        System.out.println ("HGH");
    } 
    else if (c.equals("O")==true) { 
        System.out.println ("HGHOHGH");          
    }
    else if (c.equals("A")==true) { 
        System.out.println ("HGHOHGHAHGHHGH");          
    }
}

2 个答案:

答案 0 :(得分:1)

您无法使用递归来解决此类问题。您的应用程序回复用户的输入以打印硬编码字符串。最好使用上面提到的@Lezorical的switch语句。

递归是根据(更简单的版本)本身定义问题(或问题的解决方案)的过程。

例如,我们可以定义操作"找到回家的路#34;为:

如果你在家,请停止移动。

向家里迈出一步。

"找到回家的路#34;。

这里找到回家路的解决方案是两步(三步)。首先,如果我们已经回家,我们就不会回家。其次,我们做了一个非常简单的动作,使我们的情况更容易解决。最后,我们重做整个算法。

这是计算N的一个例子!使用递归。

public static int factorial(int N) { 
   if (N == 1) return 1; 
   return N * factorial(N-1); 
}

答案 1 :(得分:0)

您没有指定足够的信息,但您应该这样做:

public static void Pattern(String c){
switch(c){
case "K":
    System.out.println ("K");
    break;
case "g":
    System.out.println ("kgk");
    break;
case "t":
    System.out.println ("kgktkgk");
    break;
case "s":
    System.out.println ("kgktkgkskgktkgk");
    break;
default:
    System.out.println("c is not equal to K, g, t, and s");
}
}