高精度算法(复习回顾)

高精度算法:

1.适用于数据很大的加减乘除法运算;

2.由于C语言对于数据类型的限制而出现;

3.python由于数据无限制,不存在此类问题

算法处理步骤:

数据存储——>模拟仿真——>进位处理——>数据输出

the first:

既然使用了高精度,说明数据极大,无法用现有数据类型接受,so

我们在存储的时候需要特别处理:

#include<stdio.h>
#include<string.h>
int main()
{
    char str[1000];
    scanf("%s",str);
    int num[1000];
    int len=strlen(str);
    int i;
    for(i=len;i>=0;i--)//反向存储,这里需要格外注意,思考一下,为什么要这样做;
    {
        num[i]=str[i]-'0';
    }
    return 0;
}

  这里的处理方法其实就是使用char类型数组,以字符型数组的形式将超大数据接收,在使用ASCII码表将字符转化为一个单独的数,便于后期计算模拟,但是并不改变数在整体数据中的结构。

模拟仿真:其意是说将其按照我们熟悉的数学计算方法来仿真计算。

例如:(加法)

    2    4    5

+  9    2    8

——————

   11   6    13

如果按照我们的习惯,我们在计算加法后直接编进位了,但是计算机是无法理解我们的习惯的,所以,我们需要单独处理进位。

似乎这儿没写完,但是我更新了Blog地址,之前的地址失效了,有时间再补吧……

这是大数的计算方法,如果有兴趣,我附上一个超快大数运算算法的介绍:https://zhuanlan.zhihu.com/p/63291883

原文地址:https://www.cnblogs.com/gti2baby/p/10503393.html