当前位置:首页 > 实用技巧 >

为什么加减乘除计算不进位(加减乘除有效数字怎么确定)

来源:原点资讯(www.yd166.com)时间:2023-04-16 19:44:26作者:YD166手机阅读>>

除法转成减法运算

但是有个问题,如果被除数a很大很大,可能有居多个b,那么这样时间复杂度太高了,不可能执行那么多次,那么需要怎么样去优化这个方法呢?

那就要加速寻找次数,减少这个减法的次数了,减法次数减小的一个最好方案就是能不能扩大除数b。如果b后面加个'0',那么算出来的结果就乘以10,减法的次数变成原来十分之一。根据这个思想我们可以一直每次找到b的最大10的倍数(小于a)计算减的次数再换算成减b的总词数,将结果要以字符串方式保留,后面一直迭代到最后为止,这虽然是一道除法运算的题,但是也蕴含减法和加法(次数叠加到结果中)。

为什么加减乘除计算不进位,加减乘除有效数字怎么确定(13)

计算思想

当然,也有一些人使用二分法来压缩寻找可以被减的次数也是可以的(加法可以迭代数字实现二分倍数),具体实现的话也不是很困难,但是代码量可能比较多所以一般的面试笔试不会让你现场写的,所以好好掌握前面的减法、减法、乘法的代码即可。

这部分代码我也简单给一下(其他函数上面贴过就不重复贴啦):

//假设 num1>num2
public static String divideString(String num1,String num2)
{
String value="0";//结果
while (compare(num1,num2))
{
StringBuilder sbTeam=new StringBuilder(num2);//用这个往后面不断加0 和num做减法
StringBuilder sbCount=new StringBuilder("1");//次数 可能很大
int subLen=num1.length-num2.length;//统计大概要加几个零
for(int i=0;i<subLen;i )
{
sbTeam.append('0');
sbCount.append('0');
}
//如果0 加多了 那么要删一个 类似"12300" / "23" "12300"比"23000"小
//所以要 "2300" 对应比"23"扩大 "100"倍数,每减一次"2300" 则结果加"100"
if(!compare(num1,sbTeam.toString))
{
sbTeam=sbTeam.deleteCharAt(sbTeam.length-1);
sbCount=sbCount.deleteCharAt(sbCount.length-1);
}
// 一直能减的时候
while (compare(num1,sbTeam.toString))
{
num1=subtractString(num1,sbTeam.toString);
value=addStrings(sbCount.toString,value);
}
}
return value;
}

简单测试了下,正确性还是ok的:

为什么加减乘除计算不进位,加减乘除有效数字怎么确定(14)

除法测试

为什么加减乘除计算不进位,加减乘除有效数字怎么确定(15)

番外篇

除了上面直接的大数加减乘除,还有一些变形的题目需要我们特殊处理一下,比如可能会使用链表等存储处理,下面分享两道题。

两数相加(力扣02)

题目描述:

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表

你可以假设除了数字 0 之外,这两个数都不会以 0 开头。

为什么加减乘除计算不进位,加减乘除有效数字怎么确定(16)

栏目热文

为什么加减乘除都是最简单的

为什么加减乘除都是最简单的

最简单的加减乘除,可是却让90%的人都算错!所有人知道真相之后都超傻眼!这道被网友疯传的题目,你有把握可以算对吗?在看下...

2023-04-16 19:37:01查看全文 >>

加减乘除理解不清楚

加减乘除理解不清楚

关注风云之声提升思维层次导读从自然数到八元数,你明白加减乘除了吗?你觉得自己懂不懂加减乘除?我的科大校友、中国科学院物理...

2023-04-16 19:50:06查看全文 >>

为什么要自动加减乘除(自动加减乘除公式)

为什么要自动加减乘除(自动加减乘除公式)

数学运算中的加减乘除,在Excel中如何使用函数计算呢?1、加求和使用SUM函数。计算各科目总分,在C5单元格输入公式:...

2023-04-16 19:29:48查看全文 >>

洛克风铃岛在什么地方(洛克漂浮宫殿在哪)

洛克风铃岛在什么地方(洛克漂浮宫殿在哪)

周末去哪儿本报见习记者 孟振兴 本报通讯员 薛小玲青秀山上,淡雅的兰花散发阵阵馨香;洛克庄园里,火红的玫瑰诠释爱情的奔放...

2023-04-16 20:02:58查看全文 >>

洛克岛8月开放吗(洛克王国早上几点开放)

洛克岛8月开放吗(洛克王国早上几点开放)

浪浪子世界这么大,有些地方可以徐徐图之,但泰国普吉岛附近有几座绝美的海岛必须说走就走。因为它们只有在每年11月至来年5月...

2023-04-16 20:01:06查看全文 >>

加减乘除运算为何先算乘除(加减乘除运算100道题)

加减乘除运算为何先算乘除(加减乘除运算100道题)

计算不仅仅是数数和加减乘除这么简单,更要了解数学算式的用处,那么大家知道究竟为什么要先乘除后加减吗?如果一昧的只是死记硬...

2023-04-16 19:20:13查看全文 >>

加减乘除是逻辑运算吗(加减乘除法的简便运算100题)

加减乘除是逻辑运算吗(加减乘除法的简便运算100题)

C语言提供的加减乘除运算符如同数学的加减乘除一样,是对数值的运算。例如:int a = 1 2;这一行代码中,涉及到...

2023-04-16 20:01:25查看全文 >>

为什么只有加减乘除(加减乘除是怎么来的)

为什么只有加减乘除(加减乘除是怎么来的)

人生的活法,不必太复杂。 若能删繁就简,返璞归真,做好人生的加减乘除法,自然活得通透潇洒。01 、以加法快乐每个人从来到...

2023-04-16 19:48:28查看全文 >>

为什么会忘记加减乘除(怎么记住什么时候用加减乘除)

为什么会忘记加减乘除(怎么记住什么时候用加减乘除)

人的学习都喜欢点点脚尖就能够到的东西,太难的因为自信心受挫,甚至一蹶不振,直接导致的后果就是很容易放弃。因为知识点串联不...

2023-04-16 19:35:18查看全文 >>

加减乘除是怎么来的(乘除加减混合运算先算什么)

加减乘除是怎么来的(乘除加减混合运算先算什么)

-x÷=,平时很常见,但是当爱问问题的小朋友问你这些符号是怎么来的?你是不是会哑口无言?弄懂他们,给小朋友们讲一讲吧~...

2023-04-16 19:24:06查看全文 >>

文档排行