包装东莞网站建设0769,安阳企业网站优化排名,wordpress 图片 说明 居中,做外贸有那些网站平台r根本不用10*rn%10实际上,这是一件很棘手的事情,而且很酷。这是一个很好的例子,说明变量命名不当会使代码难以理解。我们有3行代码可以实际执行某些操作,但它的工作原理并不明显。private static int NOTHING_REVERSED_SO_FAR 0;private static int reverse(int numberToBeRev…r根本不用10*rn%10实际上,这是一件很棘手的事情,而且很酷。这是一个很好的例子,说明变量命名不当会使代码难以理解。我们有3行代码可以实际执行某些操作,但它的工作原理并不明显。private static int NOTHING_REVERSED_SO_FAR 0;private static int reverse(int numberToBeReversed, int reversalSoFar) {if (numberToBeReversed 0) return reversalSoFar;return reverse(numberToBeReversed/10, 10*reversalSoFar numberToBeReversed%10);}public static int reverse(int numberToBeReversed) {return reverse(numberToBeReversed, NOTHING_REVERSED_SO_FAR);}所以我们首先调用public方法。假设我们通过123作为数字的倒数。这将调用未经更改传递123的私有版本,并将reversalSoFar初始化为0。所以马上,你就可以看到,如果numberToberVersed是0,我们就返回到目前为止计算出的值。我建议您编写一个junit测试来挑战他的断言。所以当我们递归的时候,我们到底在做什么?首先,我们并不是真的把数字除以10。我们在做分区,通过递归地。未更改反向的数字。分割结果为123-123/10-12。(由于是int数据类型,分数丢失了。)好的,我们将传递一个12作为第一个参数。第二个论点呢。我们知道我们通过了0的逆转。所以我们有10*(0)(123)%10。123在这里是正确的,因为我们没有改变数字。结果是3。所以我们将再次递归,通过12和3。现在,进行下一次迭代。0. 123 01. 12 32. ?? ?