随笔分类 -  技巧--大数运算

摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1060 思路: 令M=N^N; 分别对等式两边取对数得 log10(M)=N*log10(N),得M=10^(N*log10(N)); 令N*log10(N)=a+b,a为整数,b为小数; C函数:log 阅读全文
posted @ 2019-07-15 22:08 _Ackerman 阅读(284) 评论(0) 推荐(0)
摘要:https://blog.csdn.net/wlxsq/article/details/49717209 阅读全文
posted @ 2019-07-15 22:03 _Ackerman 阅读(276) 评论(0) 推荐(0)
摘要:大数除法 不同于一般的模拟,除法操作步数模仿手工除法,而是利用减法操作实现的。 其基本思想是反复做除法,看从被除数里面最多能减去多少个除数,商就是多少。 逐个减显然太慢,要判断一次最多能减少多少个整的10的n次方。 以7546除23为例。 先减去23的100倍,就是2300,可以减3次,余下646。 阅读全文
posted @ 2019-07-15 22:01 _Ackerman 阅读(5299) 评论(0) 推荐(3)
摘要:首先说一下乘法计算的算法:同样是模拟人工计算时的方法。 从低位向高位乘,在竖式计算中,我们是将乘数第一位与被乘数的每一位相乘,记录结果之后,用第二位相乘,记录结果并且左移一位,以此类推,直到计算完最后一位,再将各项结果相加,得出最后结果。计算的过程基本上和小学生列竖式做乘法相同。为编程方便,并不急于 阅读全文
posted @ 2019-07-15 21:51 _Ackerman 阅读(744) 评论(0) 推荐(0)
摘要:思路: 和大数加法是一样的,只不过加变成了减。 阅读全文
posted @ 2019-07-15 21:29 _Ackerman 阅读(1358) 评论(0) 推荐(0)
摘要:最常规的大数加法 (两个数都是非负的整数) 思路: 用字符串的方式去存储我们需要计算的数 ,但是要注意的一点就是我们是倒过来存储这个大数的 比如: 123456789 我们存储的时候是存成 987654321 为什么要这么干? 我觉得是为了便于后面我们的进位操作吧 最常规的大数加法 (两个数都是非负 阅读全文
posted @ 2019-07-15 21:13 _Ackerman 阅读(11985) 评论(3) 推荐(4)