Skip to content

Commit

Permalink
style: format markdown files with remark-lint
Browse files Browse the repository at this point in the history
  • Loading branch information
24OI-bot committed Dec 11, 2018
1 parent a35fa20 commit dd508b6
Showing 1 changed file with 16 additions and 8 deletions.
24 changes: 16 additions & 8 deletions docs/math/bignum.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@

目录:(内容正在逐步完善)

- 存储
- 四则运算
- 快速幂
- 分数
- 对数(?)
- 开根
- 压位高精度
- 存储
- 四则运算
- 快速幂
- 分数
- 对数(?)
- 开根
- 压位高精度

还有一个很好用的[高精度封装类](https://paste.ubuntu.com/p/7VKYzpC7dn/) 10kb 想用可以自行下载。

Expand Down Expand Up @@ -295,23 +295,29 @@ void plu() {
![](./images/multiplication.png)

通过观察我们发现有如下的计算规律:

$$
c_{i+j-1}=a_i*b_j
$$

(其中,$c_{i+j-1}$代表答案的第$i+j-1$位,$a_i$代表第一个数的第 i 位,$b_j$代表第二个数的第 j 位。该公式对于任何有效的 i 和 j 均有效。)

进位也比较容易:

$$
c_{i+1}=c_{i+1}+c_i \div 10,c_i=c_i\mod 10
$$

(其中,除号为整除运算)

**有一点需要特别注意!**

如果你是不同于本文讲的读入规则(1为最低位),而是使用0作为最低位,那么计算规律就有所改变:
如果你是不同于本文讲的读入规则(1 为最低位),而是使用 0 作为最低位,那么计算规律就有所改变:

$$
c_{i+j}=a_i*b_j
$$

代码如下:

```c++
Expand Down Expand Up @@ -345,13 +351,15 @@ void mul() {
我们发现一个特点:$a-b=-(b-a)$。

举个例子:

$$
1-2=-1
,
2-1=1
,
-(2-1)=-1
$$

所以,我们遇到$a<b$的情况,我们需要先输出 “-” 再交换两数,接着进行减法计算。

否则直接进行计算即可。
Expand Down

0 comments on commit dd508b6

Please sign in to comment.