关于一个腾讯面试题的解法
本帖最后由 mycsdf 于 2013-08-18 10:46:58 编辑 不知道在某个地方看到的,有一道腾讯面试题是这样的:
试求出 所有 ABCD*4 = DCBA的数?
我的思路是先把ABCD逆转为DCBA的形式,
可以考虑用递归或是栈的方式,这里我选用递归进行。。
然后,再做一个循环判断,输出结果。
但是总觉得下面那个for循环效率太低,不知道应该怎样改进一下。。。。。
面试题 递归 C++/C
void reverseNum( int n, int &b )
{
b = b + n%10;
if ( n > 9 )
{ b = b*10;
reverseNum(n/10, b);
}
}
void getNum()
{
for( int i = 1000; i < 2500; i ++ )
{ int b = 0;//每次都要把b初始化为0.
reverseNum( i, b );
if( i*4 == b )
printf("%d * %d = %d\n",i,4,b);
}
}