函数power()求负数次幂,该如何解决

函数power()求负数次幂
函数power()返回一个double类型的次幂,真心觉的写的太烂,感觉正负数次幂可以放在一个for()循环里面,想不出来,求指点。谢谢。
double power(int n, int m)
{
    double ans;
    int i;
    int flag;

    if(n == 0)
        return 0;
    else if(m == 0)
        return 1;
    else if(m < 0)
    {
        m = -m;
        ans = 1;
        for(i = 1; i <= m; i++)
            ans *= 1 / n;
    }
    else if(m > 0)
    {
        ans = 1;
        for(i = 1; i <= m; i++)
            ans *= n;
    }
    return ans;
}

------解决方案--------------------

double power(int n, int m)
{
    double ans;
    int i;
    int flag;
 
    if(n == 0)
        return 0;
    else if(m == 0)
        return 1;
    else if(m < 0)
    {
        return 1.0 / power(n, -m);
    }
    else if(m > 0)
    {
        ans = 1;
        for(i = 1; i <= m; i++)
            ans *= n;
    }
    return ans;
}