我昨天考试时遇到了这个问题。我无法解决它,所以你可以想象结果......
创建一个递归函数:int invertint( int num)将接收一个整数并将其返回但反转,例如:321将返回为123
我写了这个:
int invertint( int num ) {
int rest = num % 10;
int div = num / 10;
if( div == 0 ) {
return( rest );
}
return( rest * 10 + invert( div ) )
}
适用于 2 位数字,但不适用于 3 位或更多位。因为321在最后阶段会返回1 * 10 + 23。
非常感谢!
PS:有没有办法以更快的方式理解这些递归问题,或者这取决于自己的想象?