如何编写一个接受int的递归字符串方法?

时间:2017-03-02 03:31:05

标签: java recursion

我需要编写一个名为String song(int n)的递归方法。 说我有一句话:我有一个糖果,你取出一个,传递它,n-1离开。

我有n-1糖果,你取出一个,绕过它,n-2离开。

当n = 0时它继续并停止。

如何将此字符串放入歌曲方法中?如果我这样做:返回"我有" + n +"糖果,你带一个...." 它没有编译。如何将int和字符串一起返回?

非常感谢你!

1 个答案:

答案 0 :(得分:1)

  

如果我这样做:返回"我有" + n +"糖果,你带一个...."它没有编译

它应该编译。至少对我而言。

public String song(int n) {
    return "I have "+ n + " candy, you take one out....";
}

但这根本不是递归的;该功能不会自行调用。

  

如何将此字符串放入歌曲方法中?

什么字符串?糖果名?为什么不参数?

public String song(String candy, int n) {
    return "I have "+ n + " " + candy + ", you take one out....";
}

还是应该编译。

  

如何将int和字符串一起返回?

如果您已经学习过Java,那么您就无法学习。方法只有一种返回类型。你可以打印字符串,而不是返回整首歌......

但是,真的,你不需要返回整数。

你需要递归调用函数,对吗?

所以,你可以这样做

public String song(int n) {
    return "I have " + n + "candy.\n" + song(n-1);
}  

但是这会导致StackOverflowError,所以好好编写其余的代码!