Re: [cpp] 一道据说是Google的面试题

Chen Shuo giantchen at gmail.com
Mon Sep 18 22:03:20 CST 2006


SGI STL 里有一个power()函数(位于<ext/numeric>),应该能满足你的要求:

template<typename _Tp, typename _Integer>
_Tp power(_Tp __x, _Integer __n);


On 9/17/06, zuroc <zsp007 at gmail.com> wrote:
> 一道据说是Google的面试题
> 题目:有一个整数n,写一个函数f(n),返回0到n之间出现的"1"的个数。比如f(13)=6
> ; f(11)=4,算出f(n)=n的n(如f(1)=1)?
>
> 我用python写了一份代码,还改写了一份c++代码(见附件)
>
> 但是我遇到了一个小小的问题,就是当C++中pow()的参数为int,int时不能通过gcc
> 编译,而当我改为float,int时当数值非常大(如 1111111110向上)时,又会出现不准
> 确的问题.最后只好自己写了一个mypow.
>
> 想请教一下各位高手,有没有什么可以直接使用标准库的好办法?
>
>
> _______________________________________________
> Cpp mailing list
> Cpp at codingnow.com
> http://codingnow.com/mailman/listinfo/cpp
>
>
>



More information about the Cpp mailing list