1.タイトル説明
ダブル基本型と浮動小数点型int型の整数の指数を考えます。パワーベースの指数を求めて。ベースと指数が同時にゼロではないことを確認してください。
2.アイデアや方法
分析:指標としては、int型のものであるので、区別または負の整数またはゼロします。
2.1直接連続乗法
それは何回乗算を引き起こします。
2.2高速累乗
写出指数的二进制表达,例如13表达为二进制1101。
通过&1和>>1来逐位读取1101,为1时将该位代表的乘数累乘到最终结果。
例:1101 = 10 ^ 10 ^ 10 ^ 0001 * 0100×1000 ^ 10。
3.C ++コアコード
3.1乗法
1 クラスソリューション{ 2 公共: 3 二重電源(ダブル ベース、int型の指数){ 4 INT ab_e = STD :: ABS(指数)。 5つの 6 ダブル RES = 1.0 。 7 一方(ab_e!= 0 ){ 8つの RES * = ベース。 9 ab_e-- 。 10 } 11 12 であれば(指数< 0 ){ 13件 のRES =1.0 /の解像度。 14 } 15の リターンRES。 16 } 17 }。
3.2累乗
1 クラスソリューション{ 2 公共: 3 二重電源(ダブル ベース、int型の指数){ 4 INT ab_e = STD :: ABS(指数)。 5つの 6 ダブル RES = 1.0 。 7 一方(ab_e){ 8 であれば(ab_e&1 ){ 9つの RES * = ベース。 10 } 11 ベース * = ベース。 12 ab_e >> = 1; 13 } 14 であれば(指数< 0 ){ 15の RES = 1.0 /のRES。 16 } 17の リターンRES。 18 } 19 }。
参考資料
https://blog.csdn.net/michaelhan3/article/details/88635826