我需要编写一个名为String song(int n)的递归方法。 说我有一句话:我有一个糖果,你取出一个,传递它,n-1离开。
我有n-1糖果,你取出一个,绕过它,n-2离开。
当n = 0时它继续并停止。
如何将此字符串放入歌曲方法中?如果我这样做:返回"我有" + n +"糖果,你带一个...." 它没有编译。如何将int和字符串一起返回?
非常感谢你!
答案 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,所以好好编写其余的代码!