剑指Offer09 数值的整数次方

 1 /*************************************************************************
 2     > File Name: 09_Power.c
 3     > Author: Juntaran
 4     > Mail: [email protected]
 5     > Created Time: 2016年08月29日 星期一 21时07分21秒
 6  ************************************************************************/
 7
 8 #include <stdio.h>
 9
10 double Power(double base, int exponent)
11 {
12     if (base == 0)
13         return 0;
14     if (exponent == 0)
15         return 1;
16     if (exponent == 1)
17         return base;
18
19     int x = abs(exponent);
20     double r = 1.0;
21
22     while (x)
23     {
24         if (x & 1)
25             r *= base;
26         base *= base;
27         x >>= 1;
28         printf("r is %f\n base is %f\n x is %d\n", r, base, x);
29     }
30     return exponent<0 ? 1/r : r;
31 }
32
33 int main()
34 {
35     double base = 2;
36     int exponent = 10;
37     double ret = Power(base, exponent);
38     printf("ret is %f\n", ret);
39
40     return 0;
41 }
时间: 2024-10-21 00:45:24

剑指Offer09 数值的整数次方的相关文章

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

题目:给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 下面来看代码: public class PowerSolution { public static double Power(double base, int exponent) { //当底数为0,指数小于0,则为非法情况. if (equal(base,0.0)&&exponent<0) { return 0.0f; } //当指数小于0的时候即求该数的倒数再乘

剑指:数值的整数次方

题目描述 实现函数 double Power(double base, int exponent),求 base 的 exponent 次方. 不得使用库函数,同时不需要考虑大数问题. 注意: 不会出现底数和指数同为 0 的情况. 注意判断值数是否小于 0.另外 0 的 0 次方没有意义,也需要考虑一下,看具体题目要求. 样例1 输入:10 ,2 输出:100 样例2 输入:10 ,-2 输出:0.01 解法 解法一 public static double power(double base,

剑指Offer-数值的整数次方

数值的整数次方 题目描述: ??给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 解题思路: ??注意判断输入的int类型的整数exponent是正数还是负数,0: 如果是正数,使用循环来让base自身乘exponent次,直接返回: 如果是负数,按照正数的方法得到结果result,然后返回1.0/result,.: 如果是0,直接返回1. 我的Java源代码: public class Solution { public doubl

12、剑指offer--数值的整数次方

题目描述 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 解题思路:首先要注意特殊情况的处理   base为0情况  exponent为0 为1情况  exponent为负数情况 1 #include <iostream> 2 using namespace std; 3 class Solution { 4 public: 5 //要注意的几点 6 //1.base == 0 7 //2.exponent == 0:==1 8

[剑指offer] 浮点数的整数次方

题目描述 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 输入描述 base,exponent 输出描述 base的exponent次方 题目分析 首先要注意,指数正负和零的情况判别: ①任何数的0次方等于0 ②0不能做除数(也就是指数为负时,基数不能为0) 解法一 运行时间:27ms 占用内存:636k public class Solution { public double Power(double base, int exp

剑指offer-数值的整数次方-调整数组顺序使奇数位于偶数前面-代码的完整性-python

题目描述 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 保证base和exponent不同时为0 思路 求base的exponent次方,exponent有两种可能性, exponent>0 for循环exponent次,结果与base相乘 exponent<0 for循环exponent次,结果与base相除 输出结果: # -*- coding:utf-8 -*- class Solution: def Power(self

【剑指offer】数值的整数次方

转载请注明出处:http://blog.csdn.net/ns_code/article/details/25506085 剑指offer上的第十一题,九度OJ上测试通过. 题目描述: 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 输入: 输入可能包含多个测试样例.对于每个输入文件,第一行输入一个整数T,表示测试案例的数目,接下来的T行每行输入一个浮点数base和一个整数exponent,两个数中间用一个空格隔开. 输出: 对应每

[剑指offer]Q11:数值的整数次方

pow(base, exponent) 考虑一下几种情况: base = 0, 那么直接返回0 base = 1, 那么直接返回1 exponent = 0, 那么直接返回1, 注意base= 0 exponent = 1, 那么直接返回 base exponent  为正为负 的情况 主要考察的点是将问题缩减,用折半的思想.这个题细节还是很多的,为了便于验证,leetcode上恰好有这个题,建议在线AC一下. def equal(self, a, b): return abs(a - b) <

剑指Offer--第16题 数值的整数次方

第16题 数值的整数次方 题目:给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 思路 看到有点懵,第一感觉觉得是不是应该考虑0的0次或者负数情况,还有就是浮点类型没办法使用"="号,最后自己以偷懒的方式直接调用Java的API,如果面试题中不让调用库函数,那么基本上这题就是挂了可能. 以上题目描述来自牛客,没有对使用做限制.真正的剑指offer上有限制条件不得使用库函数,同时不需要考虑大数问题. 自己的low代码 publ