Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何编写接受int的递归字符串方法?_Java_Recursion - Fatal编程技术网

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

Java 如何编写接受int的递归字符串方法?,java,recursion,Java,Recursion,我需要编写一个名为stringsong(intn)的递归方法。 假设我有一句话:我有n块糖果,你拿出一块,传给别人,剩下n-1块 我有n-1个糖果,你拿一个出来,传过来,剩下n-2个 当n=0时,它继续并停止 如何将此字符串放入song方法中?如果我这样做:返回“我有”+n+“糖果,你拿出一个……” 它不能编译。如何同时返回int和字符串 非常感谢你 如果我这样做:返回“我有”+n+“糖果,你拿出一个……”它不编译 它应该编译。至少对我来说是这样 public String song(int n

我需要编写一个名为stringsong(intn)的递归方法。 假设我有一句话:我有n块糖果,你拿出一块,传给别人,剩下n-1块

我有n-1个糖果,你拿一个出来,传过来,剩下n-2个

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

如何将此字符串放入song方法中?如果我这样做:返回“我有”+n+“糖果,你拿出一个……” 它不能编译。如何同时返回int和字符串

非常感谢你

如果我这样做:返回“我有”+n+“糖果,你拿出一个……”它不编译

它应该编译。至少对我来说是这样

public String song(int n) {
    return "I have "+ n + " candy, you take one out....";
}
但这根本不是递归的;该函数不调用自身

如何将此字符串放入song方法中

什么弦?糖果的名字?为什么不是一个参数

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);
}  

但这将导致StackOverflower错误,所以祝您好运,编码其余的

“它不会编译。”展示它会有帮助。憎恨者会憎恨。不是憎恨者-你的回答会导致网站被滥用。OP甚至没有提供所要求的代码。@MichaelMarkidis和我们中的一些人很好地推动了正确的方向,而不是向帮助中心发送垃圾邮件。细节并不总是激发学习的最佳方式。不过,我会删除我的-1。非常感谢!我得到了它!谢谢你的帮助@cricket_007