【发布时间】:2011-06-06 05:23:58
【问题描述】:
我需要编写一个函数,它接收两个正整数并将它们连接起来。
示例:Cat(12,13) 返回 1213
我知道如何以迭代的方式做到这一点,它会是这样的:
int Cat(int num1, int num2)
{
int temp = num2;
while (temp > 0)
{
num1 *= 10;
temp /= 10;
}
return num1 + num2;
}
但是当我使用递归时,我不能使用将用于计算数字的临时变量,如果使用参数我将失去它的值。
【问题讨论】:
-
如果要将数字视为字符串,请使用字符串。 “连接”不是你用整数做的事情。一方面,“整数”是一个与数字表示方式分开存在的概念。 “十三”无论你写在什么基础上,或者你用 13 个计数标记来表示它,或者通过绘制一个完全虚构的符号,然后你说它代表那个值,都是一样的。
-
为什么需要递归写?这是作业吗?什么语言?到目前为止,您尝试过什么?
-
因为这就是问题的定义方式。这不完全是家庭作业。语言并不重要,因为它更多的是关于算法。我想到了带有额外参数的解决方案,但我正在寻找只有两个参数的解决方案。
-
这看起来很像“计算机程序的结构和解释”中的练习。
-
您当然可以使用参数计算数字。为此,您需要 两个 函数。