这是我的代码:
private static String recString(final int i) {
return (i>0 ? i + "." + recString(i-1) : i<0? "." + recString(i+1) : "" ) ;
}
当i> 0时,该方法应返回i个点,并且开始时的点数(示例recString(4)返回“ 4 ....”),而当i
最佳答案
对于正数,您只需要输出一次初始数,并且只能在“正”分支中输出该数字,您必须在一次迭代后离开该“正”分支。
一种可能的解决方案是在“正”分支中输出数字后取反,然后让“负”分支完成工作(输出所有点):
return (i > 0 ? i + recString(-i) : i < 0 ? "." + recString(i + 1) : "");
问题作者的初始代码适用于非负数。建议的解决方案也使其适用于积极的解决方案。