gpt4 book ai didi

java - 双数递归解释

转载 作者:行者123 更新时间:2023-11-29 02:58:53 26 4
gpt4 key购买 nike

我无法理解递归参数的计算方式,这在这个问题中有解释 Java recursion and integer double digit .实现的代码如下所示:

public static int doubleDigits(int i){

if (i == 0){
return 0;
}else{
return doubleDigits(i / 10) * 100 + (i % 10) * 10 + i % 10;
}


}

如果 int i = 1234 的结果是:

 11223344

我尝试调试代码,但很难理解发生了什么。

我检查了很多例子,我能理解大多数情况下递归是如何工作的,但在这种情况下我不明白。

我想得到一个简单易懂的解释,说明递归在这种情况下是如何工作的。

最佳答案

递归总是通过解决较小的问题然后添加到该解决方案(或组合较小的解决方案)来工作。

doubleDigits(i / 10)

将原始数字除最后一位以外的所有数字的数字加倍。

然后它乘以 100 为剩余的两位数腾出空间,并用 (i % 10) * 10 + i % 10 相加。 i % 10 是输入数字的最后一位,它与输出数字相加两次。

doubleDigits(1234 / 10) * 100 + (i % 10) * 10 + i % 10

112233 * 100 + 4 * 10 + 4 = 11223344

关于java - 双数递归解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36446322/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com