c - 递归连接两个整数

标签 c string recursion

我需要编写一个函数来接收两个正整数并将它们连接起来返回。

示例: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/

相关文章:

java - C服务器与Java客户端之间的Socket编程

java - 匹配两个字符串列表,其中一个列表可以包含带有通配符 '?' 的字符串

sql - 递归SQL中的聚合函数

c++ - 查找背包中带了哪些元素

c++ - 在C/C++中写一个非打印字符的行为是什么?

c++ - 与数组的虚拟串联

c - Sizeof 返回不正确的数组长度

python - 如何替换 pandas.Dataframe 中的部分字符串?

Java - 删除字符

C : Cannot access memory error, 递归查找 AVL 树高度时