2015-09-16 100 views
2
public static String backwards(Integer x){ 
    if (x < 0){ 
     return ""; 
    }else{ 
     return x + ", " + backwards(x - 1); 
    } 
} 

我做了一个方法,如果给定一个正整数(通过命令行),将从该整数一直计数到0.我的问题是我应该采取什么方法来反转这个?递归反向

而不是去

4, 3, 2, 1, 0, 

举例来说,我希望它是像这样

0, 1, 2, 3, 4 

回答

8

只是扭转return语句,以使它产生从0输出到x - 1它输出前x

public static String backwards(Integer x) { 
    if (x < 0) { 
     return ""; 
    } else { 
     return backwards(x - 1) + ", " + x; 
    } 
} 
+1

*捂脸*它是简单.....?我需要得到一些睡眠哈哈反正,所以谢谢Eran – Xirol

+0

或'return(4-x)+“,”+ backwards(x-1);'但我怀疑这不是预期的答案:) – dotvav

+0

,0 ,1,2,3是输出。 0之前的逗号打扰了我,我该如何摆脱它? – Xirol

1

稍微修改版本,以避免开始一个“”一个结果。条件可能是“×== 0”,而是用“< =”避免了X的负输入值额外的检查

public static String backwards(Integer x){ 
    if (x <= 0){ 
     return "0"; 
    }else{ 
     return backwards(x - 1) + ", " + x; 
    } 
}