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

为什么编译通过 执行却错误呢?求高人指点小弟

2013-04-21 
为什么编译通过 执行却异常呢?求高人指点小弟丑数是只包括2,3,5这三种因子的数,另外一般把“1”当作第一个丑

为什么编译通过 执行却异常呢?求高人指点小弟

丑数是只包括2,3,5这三种因子的数,另外一般把“1”当作第一个丑数。
然后列出1500个丑数
这是我的代码


                                异常              
[解决办法]
你的函数你带入power(x, 0)试一下
会发现power(x, 0)=x*power(1, 0-1)=x*power(1, -1)
                 =x*x*power(1, -2)
                 =x*x*x*power(1, -3)
就这样无限递归下去了?
[解决办法]
VC2010版本的 power 你可以参考下

template<class int_type>
inline
int_type power(int_type base, int_type exponent)
{
    int_type result = 1;
    for ( int i = 0; i < exponent; ++i )
    {
        result *= base;
    }
    return result;
}


另外, 你的 power函数 修改成

int power(int x,int y)
{
    if(0==y)return x;
    return x*power(x,y-1);
}


再试试? 祝你好运!
[解决办法]

int power(int x,int y)
{
    if(0==y)return x;
    if(0>y) return x / power( x, -y+1 );
    return x*power(x,y-1);
}


这样,应该会更好点

[解决办法]
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处。

热点排行