c語言 求乙個數的n的k次方的高效解法

2021-08-31 16:28:13 字數 601 閱讀 8181

1.當我們解乙個數的n的k次方時首先就會想到最簡單的方法

int my_print(int n,int k)//非遞迴求階乘

if(k>=1)

return sum;

}

還有遞迴寫法

int my_print(int n,int k)//遞迴求階乘

if(k>=1)

return n*my_print(n,k-1);

}

但是我們知道以上倆種解法的效率都不是特別高

所以我們想到其實假設乙個數的n的k次方可以寫成 n^k/2 * n^k/2; 假設k為奇數 n^k/2 * n^k/2*n既可以得出最後的答案,假設k為負數那麼給得到的結果除以1便可2,所以我們得到了以下的**

#include#includedouble my_pow_2(double n, unsigned int k)  

double my_pow1(double n,int k)

else if(k<0) }

int main()

C語言 求高次方數的尾數

許多初學者看到本題最容易想到的方法就是 將13累乘13次後擷取最後三位即可。但是計算機中儲存的整數有一定的範圍,超出某範圍將不能正確表示,所以用這種演算法不可能得到正確的結果。實際上,題目僅要求後三位的值,完全沒有必要把13的13次方完全求出來。手工計算13的13次方的步驟如下 研究乘法的規律會發現...

求乙個數的整數次方

題目 求乙個數的整數次方。題目是如此的簡單,但是需要考慮的還是比較多 1.指數為負,底數是零 2.指數底數都是零 3.返回正常零和返回錯誤零的區別 4.底數為正,指數為負如何處理 5.考慮底數次方大的話,想效率問題 6.處理double數值相等問題 以下直接是 詳細考慮除底數指數全零的以上所有情況!...

如何判斷乙個數n是否是2的k次方?

問題描述 如何判斷乙個數 n 是否是 2 的 k 次方?注意 不用求 k 是多少,只需要判斷,請編寫函式實現。首先研究一下 2 的 k 次方的資料的特徵 0001 b 2 0 1,0010 b 2 1 2,0100 b 2 2 4。以此得出 2 k 的資料在二進位制表示中只有一位為 1 其實這道題與...