剑指Offer面试题11[数值的整数次方]
来源:互联网 发布:淘宝店主照片认证 编辑:程序博客网 时间:2024/05/19 00:47
1.题目描述:
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。不得使用库函数,不需要考虑大数问题。
2.相关知识:
需要考虑边界条件,特殊情况,保证代码的可靠性。本题中base可能是0,exponent可能是0或者负数。
3. 解答思路:
1) 对边界条件进行处理
2) 求指数的快速乘方算法,递归实现
4. 代码实现:
#include<stdio.h>int isInvalid = 0;//递归算法double PowerWithUnsignedExpoent(double base, unsigned int exponent){ if(exponent == 0) return 1; else if(exponent == 1) return base; double result = PowerWithUnsignedExpoent(base, exponent>>1); result = result * result; if (exponent & 0x01 == 1) //奇数 result = result * base; return result;}double Power(double base, int exponent){ double delta = 1e-8; if ((-delta<base && base<delta) && (exponent < 0)) { isInvalid = 1; return 0.0; } unsigned int absExponent = 0; if(exponent<0) absExponent = (unsigned int)(-exponent); else absExponent = (unsigned int)(exponent); double result = PowerWithUnsignedExpoent(base, absExponent); if(exponent < 0) result = 1/result; return result;}void main(){ double base = 2; int exponent = -3; printf("result: %f\n", Power(base, exponent));}
阅读全文
0 0
- [剑指offer][面试题11]数值的整数次方
- 【剑指offer】面试题11:数值的整数次方
- 剑指offer 面试题11 数值的整数次方
- 剑指Offer:面试题11 数值的整数次方
- 《剑指Offer》面试题11:数值的整数次方
- 【剑指Offer学习】【面试题11 :数值的整数次方】
- 剑指offer-面试题11:数值的整数次方
- 剑指offer之面试题11:数值的整数次方
- 剑指offer----面试题11:数值的整数次方
- 剑指offer之面试题11数值的整数次方
- 剑指Offer--面试题11 数值的整数次方
- 剑指Offer----面试题11:数值的整数次方
- 剑指offer-面试题11:数值的整数次方
- 剑指offer面试题11:数值的整数次方
- 剑指offer--面试题11: 数值的整数次方
- 剑指Offer之面试题11:数值的整数次方
- 剑指offer-面试题11-数值的整数次方
- 剑指Offer系列-面试题11:数值的整数次方
- POJ1065-LIS&偏序集定理-Wooden Sticks
- 使图片按指定的比例铺满ImageView
- 在离线状态下保存数据可能会用到的XML文件读写
- 10 大深度学习架构
- BFU C.yi的书包 01背包【水题】
- 剑指Offer面试题11[数值的整数次方]
- ubuntu小白常用指令汇总(不断更新ing)
- 好玩的线上检测代码工具-codewars(2)
- UI 一一 自定义等高cell (XIB方式)
- 008_Java中的Number
- 顺时针打印矩阵
- 牢骚话,理想话
- java反射
- 生产者消费者模式详细解读