中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

數值的整數次方

發布時間:2020-07-05 11:41:21 來源:網絡 閱讀:398 作者:duanjiatao 欄目:編程語言

題目描述: 實現函數 double Power(double base, int exponent), 求base的exponent次方。不得使用庫函數,同時不需要考慮大數問題。

分析:

有的面試者可能認為題目很簡單,因此順手就寫下了如下代碼:

double Power(double base, int exponent)
{
    double result = 1.0;
    for(int i = q; i <= exponent; ++i)
        result *= result;
        
        return result;
}

如果寫出這樣的代碼,那么請面壁思過!


全面但不夠高效的解法

數值的整數次方

數值的整數次方

bool g_InvalidInput = false;
double Power(double base, int exponent)
{
    g_InvalidInput = false;
 
    if(equal(base, 0.0) && exponent < 0)
    {
        g_InvalidInput = true;
        return 0.0;
    }
 
    unsigned int absExponent = (unsigned int)(exponent);
    if(exponent < 0)
        absExponent = (unsigned int)(-exponent);
 
    double result = PowerWithUnsignedExponent(base, absExponent);
    if(exponent < 0)
        result = 1.0 / result;
 
    return result;
}


double PowerWithUnsignedExponent(double base, unsigned int exponent)
{
    double result = 1.0;
    /
    for(int i = 1; i <= exponent; ++i)
        result *= base;
 
    return result;
}


bool equal(double num1, double num2)
{
    if((num1 - num2 > -0.0000001)
        && (num1 - num2 < 0.0000001))
        return true;
    else
        return false;
}

數值的整數次方

數值的整數次方

其實,上述解法已經比較全面了,但是如果遇到追求效率的面試官,則會提醒你還有更高效的方法。

數值的整數次方

數值的整數次方

這個公式很容易使用遞歸來實現

double PowerWithUnsignedExponent(double base, unsigned int exponent)
{
    if(exponent == 0)
        return 1;
    if(exponent == 1)
        return base;

    double result = PowerWithUnsignedExponent(base, exponent >> 1);
    result *= result;
    if((exponent & 0x1) == 1)
        result *= base;

    return result;
}

數值的整數次方

數值的整數次方數值的整數次方數值的整數次方數值的整數次方數值的整數次方數值的整數次方數值的整數次方數值的整數次方數值的整數次方數值的整數次方數值的整數次方數值的整數次方數值的整數次方數值的整數次方數值的整數次方數值的整數次方數值的整數次方數值的整數次方數值的整數次方數值的整數次方數值的整數次方數值的整數次方數值的整數次方數值的整數次方數值的整數次方數值的整數次方數值的整數次方


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

康乐县| 锦州市| 长宁县| 安义县| 和政县| 白水县| 钦州市| 桦川县| 巴青县| 民乐县| 聊城市| 右玉县| 嘉禾县| 景东| 安福县| 雷波县| 邹城市| 翼城县| 河池市| 固阳县| 象山县| 广东省| 修文县| 德阳市| 湄潭县| 咸宁市| 获嘉县| 桦川县| 晋州市| 白朗县| 崇阳县| 襄汾县| 扎兰屯市| 留坝县| 东山县| 本溪市| 炉霍县| 五莲县| 张北县| 新化县| 陵川县|