整数的整数次方

题目

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

分析

  该题考察的是考虑问题的全面性,主要有以下几点:

  1. 当base为0时,结果为0;

  2. 当exponent为0时,结果为1;

  3. 当exponent>0时,........;

  4. 当exponent<0时,........;

代码

 1   public double Power(double base, int exponent){
 2         double result = 1;
 3         if(exponent==0)
 4             return 1;
 5         if(equal(base,0.0))
 6             return 0;
 7         if(exponent>0){
 8             for(int i=0;i<exponent;i++){
 9                 result *= base;
10             }
11         }
12         else{
13             exponent = -exponent;
14             for(int i=0;i<exponent;i++){
15                 result *=base;
16             }
17             result = 1/result;
18         }
19         return result;
20     }
21     //注意double类型的比较
22     public boolean equal(double num1, double num2){
23         if((num1-num2)>-0.0000001 && (num1-num2)<0.0000001)
24             return true;
25         else
26             return false;
27     }
时间: 2024-10-19 04:55:00

整数的整数次方的相关文章

[Verilog]任意整数(奇数,整数)分频器设计, 50%占空比

module div_clk(clk_in, divisor, clk_out); input clk_in; input divisor; output clk_out; reg clk_out = 0; wire clk_in; reg [7 : 0] count = 0; wire [7 : 0] divisor; wire odd; assign odd = divisor & 1; always @(clk_in) begin if (count == 0 && clk_

剑指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

整数除以整数后转成百分比并且保留一位小数

double percent = (double)alreadyRectification / (alreadyRectification + noRectification); ViewData["rectificationCompletionRate"]= percent.ToString("0.0%");

关于整数的整数因子和问题的若干研究(数学)

奉上原作链接:http://wenku.baidu.com/view/e55ca209ba1aa8114431d98a.html 算数基本定理:每个大于1的自然数均可写为质数的积,而且这些素因子按大小排列之后,写法仅有一种方式(在排列组合中也有讲).例如:1200 = 24*3*52. 待续..

判断输入的字符是否为整数(包含整数格式验证)

在项目中,很多时候都会有输入框的存在,为了防止用户随意输入都会有限制,最近遇到一种需求,输入价格时只能输入数字类型,并且输入的数字格式要正确, 在网上搜索的很多验证数字的对格式没有校验,所以自己就完善了一下,使用的正则表达式,但是由于自己正则知识实在匮乏,写的比较low,不过也能实现最终的效果吧 能通过验证的数字类型: 0.9, 1, 20.... 不能通过验证的数字: 00.9, 0, 09, 99., 其他包含字母,标点符号的字符串 项目里的输入框是用的element的form表单,form

C语言之基本算法29—整数任意次方的最后三位数(精度问题)

//精度问题! /* ================================================================== 题目: 求整数的任意次方最后三位数!347的72次方最后三位数是241. ================================================================== */ #include<stdio.h> #include<iomanip> main() { int x,y,p,n;

用Java的大整数类Integer来实现大整数的一些运算

import java.io.*; import java.util.*; import java.math.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); BigInteger a, b; while(sc.hasNext()) { a = sc.nextBigInteger(); b = sc.nextBigInteger(); Syste

1111 多个整数的逆序输出

题目来源:https://acm.zzuli.edu.cn/zzuliacm/problem.php?id=1111Description输入n和n个整数,以与输入顺序相反的顺序输出这n个整数.要求不使用数组,而使用递归函数实现.递归函数实现过程如下:void inverse(int n){    if(n >1)   {        (1) 读入一个整数,存入num;        (2)  将后面的n-1个数逆序输出: inverse(n-1);          (3)  输出num: 

MySQL数据类型--------整数类型实战

1. 背景 * MySQL支持SQL标准整数类型整数(或INT)和SMALLINT.作为标准的扩展,MySQL还支持整数类型TINYINT.MEDIUMINT和BIGINT 2.  整数类型所需的存储和值范围 类型 占用空间 最小值 最大值 (字节) (signed/Unsigned) (signed/Unsigned) TINYINT 1 -128 127 0 255 SMALLINT 2 -32768 32767 0 65535 MEDIUMINT 3 -8388608 8388607 0