剑指offer——17数值的整数次方

题目描述

给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
 
保证base和exponent不同时为0
 
一般解法:
  直接相乘;
  
复制代码
 1 class Solution01 {
 2 public:
 3     double Power(double base, int exponent) {
 4         if (exponent == 0 || equal(base, 0.0, 0.0))return 1;
 5         double res = 1.0;
 6         for (int i = 1; i <= abs(exponent); ++i)
 7             res *= base;
 8         return exponent < 0 ? (1.0 / res) : res;
 9     }
10 };
复制代码

 

高效率解法:
  使用递归:
  

 

   

复制代码
 1 class Solution02 {
 2 public:
 3     double Power(double base, int exponent) {
 4         if (exponent == 0 || equal(base, 0.0, 0.0))return 1;
 5         double res = PowerMul(base, abs(exponent));
 6         return exponent < 0 ? (1.0 / res) : res;
 7     }
 8     double PowerMul(double base, unsigned int exponent)
 9     {
10         if (exponent == 0)return 1;
11         if (exponent == 1)return base;
12 
13         double res = PowerMul(base, exponent >> 1);
14         res *= res;
15         if (exponent & 1)//奇数
16             res *= base;
17         return res;
18     }
19 };
复制代码

 

posted @   自由之翼Az  阅读(261)  评论(0编辑  收藏  举报
编辑推荐:
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
阅读排行:
· 手把手教你更优雅的享受 DeepSeek
· 腾讯元宝接入 DeepSeek R1 模型,支持深度思考 + 联网搜索,好用不卡机!
· AI工具推荐:领先的开源 AI 代码助手——Continue
· 探秘Transformer系列之(2)---总体架构
· V-Control:一个基于 .NET MAUI 的开箱即用的UI组件库
点击右上角即可分享
微信分享提示