• 题目:实现pow函数。
  • 题目分析:因为一个一个乘,循环太大,参考矩阵连乘问题:对于n=4的话,可以得出x的平方,然后平方与平方相乘。节省计算次数。对于偶数的幂,只要x的平方多次递归调用即可;对于奇数的幂,只要n-1,就又变成偶数的幂的形式了,无非就是多乘一个x的问题。
  • 代码:
    class Solution {
    public:
    //分治法:分而治之
    double pow(double x, int n) {
    if (n < )
    return 1.0/power(x, -n);
    else
    return power(x, n);
    }
    double power(double x, int n) {
    if (n == )
    return ;
    double result = ;
    double temp = pow(x, n/);//递归的处理相乘的幂,重复利用已经的出来的值。
    if (n% == )
    result = x * temp * temp;//当幂为奇数的时候,多乘一个就变为偶数问题了。
    else
    result = temp * temp;//当幂为偶数的时候,
    return result;
    }
    };

(函数分治法)实现pow函数(x的y次方幂)的更多相关文章

  1. Pow,求x的y次幂

    算法分析:很显然用递归.但是直接用递归会造成栈溢出,时间复杂度是o(n).所以要用分治思想,时间复杂度是o(logN). public class Power { //栈溢出,时间复杂度是o(n) p ...

  2. php pow()函数 语法

    php pow()函数 语法 作用:pow()函数的作用是将一个数进行n次方计算后返回,广东大理石平台 语法:pow(X,Y); 参数: 参数 描述 X 要做处理的数字 Y 指定n次方中的n数值 说明 ...

  3. C语言pow函数编写

    C语言pow函数编写 #include<stdio.h> double chaoba(double f,double q); //声明自定义函数 void main(void) { dou ...

  4. javascript Math.pow 函数 详解

    语法 Math.pow(x,y) 定义和用法 pow() 方法可返回 x 的 y 次幂的值. 处理简单数学问题 6的4次方等于1296,记作:64=1296; 求值: Math.pow(6,4)=12 ...

  5. C语言pow()函数的计算精度问题

    编程计算 a+aa+aaa+-+aa-a(n个a)的值,n和a的值由键盘输入.例如,当n=4,a=2,表示计算2+22+222+2222的值. 程序运行结果示例: Input a,n: 2,4↙ su ...

  6. pow()函数结果强制转化为int造成误差的分析

    开发环境:codeblocks,编译器gcc 在计算102时调用pow(10, 2),再强制类型转换为int类型后输出: printf(,)); 得到的结果却是:99 这是因为 double pow( ...

  7. 汇编语言计算Sin,Cos,Pow函数

    填了一下之前的坑.首先是一个题外话,在VS2015中默认汇编代码会使用SSE生成,如果想用FPU编译出FLD,FSTP这些指令,需要设置一下. 项目 >> 属性 >> C/C+ ...

  8. C语言--pow()函数实现

      为什么自己实现一个pow()函数呢?昨天在Linux操作系统中调用这一个函数时,一直报错,也没有查找到具体的原因.故心血来潮实现这一函数功能. 函数所在头文件:   在"math.h&q ...

  9. Python3 pow() 函数

    Python3 pow() 函数  Python3 数字 描述 pow() 方法返回 xy(x的y次方) 的值. 语法 以下是 math 模块 pow() 方法的语法: import math mat ...

随机推荐

  1. 设置ubantu的软件源地址

    查看所用的源 $ sudo vim /etc/apt/sources.list 由于安装的Ubuntu Server 16.04.1 LTS是英文版的,软件源就默认都是 us.archive.ubun ...

  2. Ambari-HDP

    文档说明以及下载路径 https://docs.hortonworks.com/index.html Ambari的安装路径 https://docs.hortonworks.com/HDPDocum ...

  3. bzoj 3566 [SHOI2014]概率充电器——树型

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3566 一眼看上去高斯消元.n^3不行. 竟然直接去看了TJ.发现树型dp.一下想到了自己还没 ...

  4. 基于SQL调用Com组件来发送邮件

    这个需求是公司有个文控中心,如果有用增删改了文件信息希望可以发邮件通知到有权限的人.当然方式很多. 这里是用数据库作业来完成 JOB+Com,这里用的com组件是Jmail 当然你需要把com组件放到 ...

  5. 创建工程常量 (OC中的宏定义)

    1.oc创建宏 文件 2.swift创建 常量文件 在swift中, 并非是预编译代码替换, 而是设置全局常量, 简单宏, 直接let 加常量名即可

  6. Linux增加Swap分区

    Linux增加Swap分区 dd if=/dev/zero of=/data/swap/swapfile1 bs=4096 count=2097152 mkswap /data/swap/swapfi ...

  7. C# 判断程序是否已在运行

    方法一: Process[] processes = rocess.GetProcessesByName("ConDemo"); ) { MessageBox.Show(" ...

  8. zabbix短信监控

    [ ] zabbix-短信报警(参考http://hanyun.blog.51cto.com/1060170/1604918 ) [ ] zabbix-电话报警(参考http://dl528888.b ...

  9. gevent实现套接字

    server------------- #!/usr/bin/env python # encoding: utf-8  # Date: 2018/6/17 from gevent import mo ...

  10. PHP函数(一)-变量

    1.全局变量 <?php $a = 1; $b = 2; function test(){ echo $a + $b."<br>"; //运行结果为0 } tes ...