首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于一个腾讯面试题的解法,该如何处理

2013-08-26 
关于一个腾讯面试题的解法本帖最后由 mycsdf 于 2013-08-18 10:46:58 编辑不知道在某个地方看到的,有一道

关于一个腾讯面试题的解法
本帖最后由 mycsdf 于 2013-08-18 10:46:58 编辑 不知道在某个地方看到的,有一道腾讯面试题是这样的:

试求出 所有 ABCD*4 = DCBA的数?

            我的思路是先把ABCD逆转为DCBA的形式,
            可以考虑用递归或是栈的方式,这里我选用递归进行。。
          然后,再做一个循环判断,输出结果。

但是总觉得下面那个for循环效率太低,不知道应该怎样改进一下。。。。。


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);
 }
}
面试题 递归 C++/C
[解决办法]
....这题唯一解把?不是考编程是考数学...
a为偶数,且小于3,因此a=2,d=8,同理b为奇数,b小于3,b=1,解得c=7
[解决办法]
4层循环枚举一下会不会更快一点呢,乘法比除法要快一些。
[解决办法]
可以试试按照人的思路,解题,看看是穷举法快,还是推理法快!

热点排行