高精度算法(复习回顾)

高精度算法:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值