【发布时间】:2017-08-07 21:06:44
【问题描述】:
编写一个递归 C++ 函数,返回作为参数传输的自然数的最小偶数位。 如果数字不包含任何偶数,它将返回 -1。
无需递归即可轻松实现:
int cifminpar(int x)
{
int mi = 9;
while(x)
{
if(x % 10 % 2 == 0)
mi = min(mi , x%10 );
x /= 10;
}
if(mi == 9)
return -1;
else return mi;
}
如何使用递归来做到这一点?
【问题讨论】:
-
你尝试了什么?哪里失败了?
-
你是说数字?
-
为什么还需要递归?
-
stackoverflow.com/a/1735557/1766544(同样的事情,找到数字的细微差别)
-
关于递归的一个想法,你应该牢记在心:把复杂的问题分解成同类的小问题。