我需要编写一个函数来接收两个正整数并将它们连接起来返回。
示例:Cat(12,13) 返回 1213
我知道如何以迭代的方式做到这一点,它会是这样的:
int Cat(int num1, int num2)
{
int temp = num2;
while (temp > 0)
{
num1 *= 10;
temp /= 10;
}
return num1 + num2;
}
但是当我使用递归时,我不能使用将用于计算数字的临时变量,如果使用参数,我将失去它的值。
最佳答案
您可以添加第三个参数作为一种计数器:
int Cat2(int num1, int num2, int x)
{
if (x == 0)
{
return num1 + num2;
}
else
{
return Cat(num1 * 10, num2, x / 10);
}
}
int Cat(int num1, int num2)
{
Cat2(num1, num2, num2)
}
关于c - 递归连接两个整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4641849/