当前位置: 首页 > news >正文

简单数学运算程序(不定期更新)

用于收集一些常用数学运算的程序以备不时之需。

1. myPow(x,n) 幂运算

public class Solution {
    
    private double pow(double x, int n){
        if(n == 0) return 1;
        double v = pow(x,n/2);
        if(n%2 == 0)
            return v*v;
        else
            return v*v*x;
    }
    
    public double myPow(double x, int n) {
        return n < 0 ? 1/pow(x,-n) : pow(x,n);
    }
}

2. greatest common divisor 最大公约数

public double GCD(double m, double n){
    //所谓辗转相除法,不明白的可以举例看看。
    while(m%n != 0){
        double temp = n;
        n = m%n;
        m=temp;
    }
    return n;
}

3. least common multiple 最小公倍数

public double LCM(double m,double n){
    return m*n/GCD(m,n);
}

4. Square root 整型近似整数平方根

public class Solution {
    public int mySqrt(int x) {
        if(x == 0) return 0;
        long left = 1, right = Integer.MAX_VALUE;
        while(true){
            long mid = left + (right-left)/2;
            //巧妙利用除法进行判断避免溢出。
            if(mid > x/mid)
                right=mid-1;
            else{
                if(mid+1>x/(mid+1))
                    return (int)mid;
                left=mid+1;
            }
        }
    }
}

相关文章:

  • 创建第二个 vlan network vlan101 - 每天5分钟玩转 OpenStack(96)
  • Swift 3必看:dynamicType废除,用type(of:)代替
  • 浅谈软件性能测试中关键指标的监控与分析
  • Java-详解HashMap
  • Web 仪表盘
  • ORM
  • 【转载】Java NIO学习 NIO BIO AIO 比较
  • highcharts 使用实例
  • linux中ctime,mtime,atime的区别
  • Oozie Coordinator 规范
  • 深入分析Parquet列式存储格式
  • sed指令
  • Mongodb 通过一致性备份搭建SECONDARY.
  • 手把手教使用WebStorm搭建ExtJs5开发环境
  • 国内某公有云 linux云主机开机初始化过程分析和他的镜像制作过程
  • [NodeJS] 关于Buffer
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • es6
  • es6--symbol
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • JavaScript标准库系列——Math对象和Date对象(二)
  • JavaScript类型识别
  • linux安装openssl、swoole等扩展的具体步骤
  • Mysql优化
  • Solarized Scheme
  • Vue ES6 Jade Scss Webpack Gulp
  • vue 配置sass、scss全局变量
  • 测试如何在敏捷团队中工作?
  • 高度不固定时垂直居中
  • 力扣(LeetCode)965
  • 前端
  • 前端面试之CSS3新特性
  • 如何合理的规划jvm性能调优
  • 写代码的正确姿势
  • 优秀架构师必须掌握的架构思维
  • 智能网联汽车信息安全
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • 积累各种好的链接
  • #Z2294. 打印树的直径
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • $.ajax中的eval及dataType
  • ${ }的特别功能
  • (1) caustics\
  • (附源码)spring boot基于小程序酒店疫情系统 毕业设计 091931
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (转)人的集合论——移山之道
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .Net 4.0并行库实用性演练
  • .net CHARTING图表控件下载地址
  • .NET版Word处理控件Aspose.words功能演示:在ASP.NET MVC中创建MS Word编辑器
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理
  • .pings勒索病毒的威胁:如何应对.pings勒索病毒的突袭?
  • @media screen 针对不同移动设备