js 处理大数相减
function sub(num1, num2) {
if(num1 === num2) return '0'
function lt(num1, num2) {
if (num1.length < num2.length) {
return true
} else if (num1.length === num2.length) {
return num1 < num2
} else {
return false
}
}
let isMinus = false
if (lt(num1, num2)) {
[num1, num2] = [num2, num1]
isMinus = true
}
let len = Math.max(num1.length, num2.length)
num1 = num1.padStart(len, 0)
num2 = num2.padStart(len, 0)
let flag = 0,
result = '',
temp
for (let i = len - 1; i >= 0; i--) {
temp = parseInt(num1[i]) - flag - parseInt(num2[i])
if (temp < 0) {
result = (10 + temp) + result
flag = 1
} else {
result = temp + result
flag = 0
}
}
result = (isMinus ? '-' : '') + result.replace(/^0+/, '')
return result
}
// 传入字符串格式
console.log(sub('9999999999011112','9999999999011111'
)) // 1
console.log(sub('9999999999011112','9999999999011113'
)) // -1
js 处理大数相减的更多相关文章
- JS两日期相减
JS两日期相减,主要用到下面两个方法 dateObject.setFullYear(year,month,day) 方法 stringObject.split(separator) 方法 functi ...
- Java 大数相乘、大数相加、大数相减
思路来源:: https://blog.csdn.net/lichong_87/article/details/6860329 /** * @date 2018/6/22 * @description ...
- [小米OJ] 3. 大数相减
题目链接 思路: 利用两个string保存相减的数,其他模拟即可. 参考了别人的一个处理减的步骤,很简洁好看. string substract(string str1, string str2) { ...
- JS当前日期相加相减
function DateAddORSub(interval,type,number) { /* * 功能:实现Script的Date加减功能. * 参数:interval,字符串表达式,表示要添加的 ...
- Jquery datepicker 时间插件使用 js 时间相加,相减
$(document).ready(function(){ //输入框事件 $('#probation').bind('input propertychange', function() { var ...
- js 两数相减
var SecondPrice = document.getElementById("txtSecondPrice"); //秒杀价 var MarketP ...
- HDU 3925 Substring 【大数相减】
题目意思是,给你提供两个数字 a 和 b a 可以不断的往上加, 直到b 为其子串 问的是 a 最小加几? 显而易见,a 的数据范围给了10 ^100非常大,直接模拟肯定不行 那么就用 b 减去 a ...
- js计算日期相减天数
代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head ...
- 大数相减 C语言
#include <stdio.h> #include <string.h> using namespace std; ],b[]; void Sub() { ; if(a = ...
- JS 计算日期相减得天数
言简意赅不呼哨直接懂,可以封装的可以根据自己的需求封装一下 var date1="2020-10-23";var date2="2020-10-26";var ...
随机推荐
- Java入门与进阶P-5.1+P-5.2
初识数组 一.数组 数组是用来存储一个元素个数固定且元素类型相同·的有序集. 数组的两个特点:大小是固定的,且确定之后是不能改变的:数组内的元素类型是相同的. 1.数组的定义(两种): int arr ...
- Java语言的跨平台性-JDK,JRE和JVM
Java语言的跨平台性 1 Java虚拟机--JVM JVM(Java Virtual Machine ):Java虚拟机,简称JVM,是运行所有Java程序的假想计算机,是Java程序的 运行环境, ...
- 双缓冲技术解决MFC绘制闪烁问题
闪烁的根源:OnEraseBkgnd一擦一写造成了图象颜色的反差导致闪烁 如何避免:首先要做的是屏蔽背景刷新.背景刷新其实是在响应WM_ERASEBKGND消息.我们在视类中添加对这个消息的响应 BO ...
- get请求与post请求的区别
大小限制 get请求一般通过url传输的数据量时比较少的,最多传3~5个参数,如果要传递多个参数,要在url地址中利用"&"符号拼接多个参数, 栗子:/test/demo. ...
- Django框架之drf:7、认证组件,权限组件,频率组件,过滤的多种用法,排序,分页,
Django框架之drf 一.认证组件 简介: 登录认证的限制 认证组件是drf框架给我们提供的认证接口,它能够在请求进入视图函数/类前进验证(例如:认证用户是否登录),对不符合认证的请求进行 ...
- FAQ 关于pip你应该知道的一些技巧
pip简介 pip是安装了python之后的一个应用程序,包管理程序,有点类似于yum.npm.apt等工具 物理位置一般是python.exe所在目录下的scripts下 以我为例,我Python安 ...
- ThinkPad E580 装Ubuntu系 系统无WIFI 解决办法
首先得下载 最新的驱动,我之前因为自己的下载的驱动不够新,导致我的驱动一直装不上去 https://github.com/tomaspinho/rtl8821ce 这个是最新的驱动的下载 地址,建议从 ...
- 【RocketMQ】DLedger选主源码分析
RocketMQ 4.5版本之前,可以采用主从架构进行集群部署,但是如果master节点挂掉,不能自动在集群中选举出新的Master节点,需要人工介入,在4.5版本之后提供了DLedger模式,使用R ...
- 黑马Mybatis快速入门
创建user表,添加数据,Mysql: 1 create database mybatis; 2 use mybatis; 3 drop table if exists tb_user; 4 crea ...
- JAVASE小练习 (今天做一个基于javase的银行ATM小练习)
实现的功能有1,用户登录2,用户开户(基于用户登录)3,查询账户(基于用户登录)4,存款5,取款6,转账7,修改密码(只有三次确认密码的机会)8,退出登录9,注销 这个小例子可以让我们充分复习所学的j ...