【发布时间】:2018-12-09 21:56:15
【问题描述】:
尝试在 Java 中使用 FizzBuzz 递归解决方案以返回具有 n 次迭代的字符串列表。例如,n = 4 应该输出 ["1","2","Fizz", 4]。但是,使用我当前的代码,输出只是 ["4"]。为什么我的解决方案不执行递归函数?任何其他批评表示赞赏!
class Solution {
public List<String> fizzBuzz(int n) {
//create variable to return list of strings
List<String> fbList = new ArrayList<String>();
//base case 1
if(n == 0){
fbList.add(Integer.toString(0));
}
//base case 2
else if(n == 1){
fbList.add(Integer.toString(1));
}
//OW take n and begin reducing recursively from, n - 1
else{
if(n % 3 == 0){
fbList.add("Fizz");
}
else if(n % 5 == 0){
fbList.add("Buzz");
}
else if((n % 3 == 0) && (n % 5 == 0)){
fbList.add("FizzBuzz");
}
else{
fbList.add(Integer.toString(n));
}
//recursive function call
fizzBuzz(n - 1);
}
return fbList;
}
}
【问题讨论】:
-
看来你需要学习使用调试器了。请帮助自己一些complementary debugging techniques。如果您之后仍有问题,请随时回来提出更具体的问题。
-
您可能希望首先在您的
if-statement中运行else if((n % 3 == 0) && (n % 5 == 0)){ fbList.add("FizzBuzz"); }。
标签: java algorithm list recursion fizzbuzz