91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

數值的整數次方

發布時間: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

同仁县| 台州市| 乌兰察布市| 怀宁县| 手游| 仲巴县| 西平县| 本溪| 清新县| 台中市| 安徽省| 江永县| 棋牌| 罗城| 山东| 嵊泗县| 新宁县| 莎车县| 扬州市| 个旧市| 曲靖市| 冕宁县| 西华县| 邹平县| 青阳县| 盘山县| 凤山县| 桂林市| 葵青区| 增城市| 峡江县| 乌鲁木齐县| 榆林市| 报价| 钟山县| 菏泽市| 容城县| 万山特区| 寿阳县| 专栏| 桂平市|