使用java中的递归重复单词的开头和结尾

时间:2018-02-22 00:10:42

标签: java recursion

我需要编写一个Java void方法,在最后使用递归,在“计算”和“ting”的开头重复“comp”,n次。该方法中唯一的参数是int n。

输出示例:

n = 3 compcompcomputingtingting

n = 2 compcomputingting

n = 1 计算

当你每次只能传递n时,我不知道如何做到这一点。

3 个答案:

答案 0 :(得分:0)

您需要在自身内部调用该函数。想想复发关系。只要n>0你需要在减少n的情况下调用自身内部的函数。所以请致电f(3) f(2) f(1)你是怎么做到的? f (n-1)您的停止条件是n==0然后您还需要打印一个u并继续tingtingting所以您的函数就像伪代码一样:

f(n):
  if (n > 0)
    print("comp");
    f(n-1);
  if (n = 0)
    print("u");

- 不要期待完整的代码答案,因为这显然是一个功课问题。你可以添加ting ting ting部分,只需在脑中追踪它,发生了什么?

答案 1 :(得分:0)

我只知道如何做9次:

-> String s = "u"; for (int i = 0; i < 9; ++i) { s="comp" + s + "ting"; println (s); }
|  Modified variable s of type String with initial value "u"
|    Update overwrote variable s
computing
compcomputingting
compcompcomputingtingting
compcompcompcomputingtingtingting
compcompcompcompcomputingtingtingtingting
compcompcompcompcompcomputingtingtingtingtingting
compcompcompcompcompcompcomputingtingtingtingtingtingting
compcompcompcompcompcompcompcomputingtingtingtingtingtingtingting
compcompcompcompcompcompcompcompcomputingtingtingtingtingtingtingtingting

答案 2 :(得分:-1)

以下是您问题的答案!

public static void repeat(String beg, String mid, String end, int n) {
    String result="";
    for (int i=1; i<=n; i++) {
        result=result+beg;
    }
    result=result+mid;
    for (int i=1; i<=n; i++) {
        result=result+end;
    }

    System.out.println(result);
}

我创建这个方法的原因是因为,如果你想再做一次这样的事情,你所要做的就是这样称呼它:

<强>输入:

repeat("comp", "u", "ting", 4);

<强>输出:

compcompcompcomputingtingtingting

<强>输入:

repeat("lama", "", "word", 3);

<强>输出:

lamalamalamawordwordword

现在,您可以将此用于任何姿势,并始终获得所需的输出......