Any way faster than pow() to compute an integer power of 10 in C++?

后端 未结 12 909
逝去的感伤
逝去的感伤 2020-12-05 13:25

I know power of 2 can be implemented using << operator. What about power of 10? Like 10^5? Is there any way faster than pow(10,5) in C++? It is a pretty straight-forw

12条回答
  •  旧时难觅i
    2020-12-05 13:51

    result *= 10 can also be written as result = (result << 3) + (result << 1)

    constexpr int pow10(int n) {
      int result = 1;
      for (int i = 0; i < n; i++) {
        result = (result << 3) + (result << 1);
      }
      return result;
    }
    

提交回复
热议问题