【发布时间】:2017-10-27 09:09:07
【问题描述】:
我需要编写一个递归函数,它以整数作为输入并返回输入数字的偶数位的串联,即我们应该删除奇数位。
例如:
创造者(1234); 返回数:24。
创造者(459876); 返回号码:486。
好吧,我陷入了死胡同。我不知道如何返回正确的数字。
这是我的代码,我什至不知道我的方法是否正确。
我的代码:
int Creator(int n)
{
if (n == 0)
return;
if ((n % 10) % 2 != 0)
Creator(n / 10);
return n % 10;
}
【问题讨论】:
-
在对
Creator的递归调用中,你如何处理它返回的值? -
对 Creator 的递归调用会返回类似
return Creator(n % 10) -
可以不用递归吗?
-
是的,但是如果您可以让基本算法在没有递归的情况下工作,您可以稍后将其转换为使用递归。这样您就不必同时解决两个问题。
-
if (n == 0) return;不可能是正确的。你必须返回一些东西。