这是我的代码:

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) : "");


问题作者的初始代码适用于非负数。建议的解决方案也使其适用于积极的解决方案。

09-13 05:21