安全offer12を証明:double型のパワーのフロートベースとint型の整数の指数を解きます。ベースと指数が同時にではないことを確認0

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

おすすめ

転載: www.cnblogs.com/wxwhnu/p/11407563.html