给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。

直接上代码了,不解释,很简单的,主要考虑边界值问题

public class Solution {
    public double Power(double base, int exponent) {
      boolean isFlag = false;
        if(exponent == 0)
            return 1;
        if(exponent == 1)
            return base;
        if(exponent<0)
        {
            exponent = -exponent;
            isFlag = true;
        }
        double total =1 ;
        int i = 1;
        for( ;  i <= exponent ; i++){
            total = total * base;
        }
        if(isFlag){
            return 1.0/total;
        }
        else {
            return total;
        }
  }
}
时间: 2024-08-10 03:01:00

给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。的相关文章

23、给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。

给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 1 class Solution { 2 public: 3     double Power(double base, int exponent) { 4         int p = abs(exponent); 5       double r = 1.0; 6         while(p){ 7             if(p != 0) r *= base; 8   

剑指offer12:求解double类型的浮点数base和int类型的整数exponent的次方。 保证base和exponent不同时为0

1. 题目描述 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方.保证base和exponent不同时为0. 2. 思路和方法 分析: 由于指数是int 类型,所以要区分整数还是负数或者0. 2.1 直接连续累乘 会造成多次相乘运算. 2.2 快速幂运算 写出指数的二进制表达,例如13表达为二进制1101. 通过&1和>>1来逐位读取1101,为1时将该位代表的乘数累乘到最终结果. 举例:10^1101 = 10^0001*1

hdu6055 Regular polygon 脑洞几何 给定n个坐标(x,y)。x,y都是整数,求有多少个正多边形。因为点都是整数点,所以只可能是正四边形。

/** 题目:hdu6055 Regular polygon 链接:http://acm.hdu.edu.cn/showproblem.php?pid=6055 题意:给定n个坐标(x,y).x,y都是整数,求有多少个正多边形.因为点都是整数点,所以只可能是正四边形. 思路: (x1,y2)(x2,y2)=>(x,y) = (x2-x1,y2-y1) 向量(x,y)逆时针旋转90度:(-y,x):那么可以得到垂直(x,y)的向量,并通过(x2,y2)获得以(x2,y2)为起点的向量终点(x2+(

mysqlint类型的长度值mysql在建表的时候int类型后的长度代表什么

详解mysql int类型的长度值 mysql在建表的时候int类型后的长度代表什么 是该列允许存储值的最大宽度吗 为什么我设置成int(1), 也一样能存10,100,1000呢. 当时我虽然知道int(1),这个长度1并不代表允许存储的宽度,但却没有一个合理的解释. 或者说对这个长度也没有真正的研究过到底代表什么, 平时都用int(11), 也不知道为什么要11位. 所以我在网上查阅了一些资料, 也仔细的看了mysql手册关于int data type的说法. 以下是每个整数类型的存储和范围

getchar返回int类型

#include <stdio.h> /* copy input to output; 2nd version */main(){int c;c = getchar();while(c != EOF){putchar(c);c = getchar();}} 直觉告诉我getchar返回值应该是char类型的,这个地方为什么不能用char类型来存储getchar()的返回值呢? 其实文中解释的很清楚,可当时没有看明白: 在键盘或者屏幕上的字符都是用char类型存储的,当然也可以用int类型来存储

不同平台下int类型、指针类型的数据大小

不同平台下int类型.指针类型的数据大小 对于int类型数据和指针类型数据的大小,是非常基础的问题. 在一个具体的平台上,确定他们最好的办法就是使用sizeof(type)对其进行判断,返回当前数据类型的大小. 在不同的平台下,int类型和指针类型的数据类型大小时怎样的呢?如果要给出一个统一的答案,自然不可能集齐每个平台,一个个地去试,我们必须从底层进行分析. 数据总线和地址总线 计算机内的数据总线是CPU与外设进行数据交换的通路,而地址总线则是CPU用于寻址的通路. 数据总线的位数决定了CPU

Java中Integer与int类型的装箱和拆箱

其实Integer与int类型的赋值与比较最关键的一点就是:这两个变量的类型不同.Integer是引用类型,int是原生数据类型.         我们分四种情况来讨论:         1) Integer与int类型的赋值                 a.把Integer类型赋值给int类型.此时,Integer类型变量的值会自动拆箱成int类型,然后赋给int类型的变量,这里底层则是通过调用intValue()方法来实现所谓的拆箱的.                 b.把int类型赋

给定一个字符串类型表示的小数,输出其二进制表示

题目 给定一个字符串类型(string)表示的小数,打印出它的二进制表示. 如果这个数无法精确地表示为二进制形式,输出”ERROR”. 解答 整数部分通过不断地对2取余然后除以2来得到其二进制表示, 或是不断地和1按位与然后除以2得到其二进制表示. 小数部分则通过不断地乘以2然后与1比较来得到其二进制表示. 小数部分转化为二进制,通过乘以2然后与1比较,大于等于1则该位为1,并且该值减去1: 否则该位为0.不断地通过这种操作最终能使该小数部分的值变为0的,即可精确表示. 否则将无法用有限的位数来

Java中如何判断一个double类型的数据为0?

Java中如何判断一个double类型的数据为0 其实这个问题很简单,只是很多时候考虑复杂了,直接用==判断即可.下面给出测试例子: /**  * 如何判断一个double类型的数据为0  *  * @author leizhimin 2014/8/27 10:31  */ public class Test4 {     public static void main(String[] args) {         double x = 0.00000000000000000;