高精度算法的介绍
有时候,我们不免会遇到一些数据,它的范围超过了计算机本身所定义的int型和long型所能表示的范围,但我们又需要对这些数进行相应的运算,这时我们便需要用到高精度算法。
高精度处理,实际上就是模拟法,模拟手算,它的原理与我们用竖式计算时一样的,不过在处理过程中要注意高精度数据的读入、转换储存、数据的计算、结果位数的计算、输出等几个问题。高精度计算中需要处理如下几个问题:
1.数据的输入:由于数据都是十分大的数字,我们采用字符数组将它们接收。
2.数据的存储和计算:由于我们是直接通过字符数组将我们的数据存储的,不能够将它们直接进行计算,所以我们还需要转换存储方式,把字符串数组的数据存储到int型的数组里。(将数据存入整形数组时,可以将数组下标为1对应个位,也可以直接对应最高位。本文采取第一种方式。)
3.模拟竖式计算:无论是加减,还是乘除,都需要模拟竖式计算。竖式计算中,我们需要将每一位上的数对其,然后再进行加或减的运算,来最终确定每一位上的数,同时加法遵守逢十进一,减法数位不够减时向前借一。
高精度加法
代码展示
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(){
char t1[502], t2[502];
int i, j, k = 0, l1, l2, l3, max, f, s1[502] = {0}, s

本文介绍了高精度算法的原理和应用,包括如何处理超过常规类型范围的大数字,通过字符数组存储数据,以及模拟竖式计算进行加法、减法和乘法运算。此外,还展示了高精度阶乘和的计算方法,结合了高精度加法和乘法的思路。
最低0.47元/天 解锁文章
3166

被折叠的 条评论
为什么被折叠?



