什么是高精度数?
(高精度数??什么???😳)
大多数人和我一样,看见这个新的名词可能都是一脸懵,不知道这是什么东西,接下来我便开始为大家讲解一下这个新的名词。
我们知道,int最多表示2的31次方-1(前面有符号),unsigned int 也最多表示2的32次方,所以遇见更高位数的数字,这时候用什么类型都不好使用(😳😳),所以这时候就需要用到高精度数要表示——数组或者字符串都可以来表示。
我们主要讲解数组来讲解这个问题,现在开始我们的主题 (-.- 享受知识的洗礼)
就是从左到右依次保留每个位数的值,如果个位大于9,则给十位加一,然后个位%10取余(像不像加减法的进制转换,确实是一模一样的),这就是数组表示高精度数的原理。
例题讲解
接下来我们用一道例题来进行说明,让大家更好的理解。
这道题便是用高精度来表示,如果不用高精度表示确实几部便可写出来,但是发现后两个测试点会报错,开始我也没有了解高精度数,所以也是一脸懵,但是了解过后好像也就那样😏。
这道题我们设置两个数组,我们设a[]来存储前n个阶乘的和,b[]来计算n的阶乘,每次算出阶乘的值,加到a[]中那不就是前n个阶乘的和了吗,问题pass。
这里需要注意的就是把第一位设置为1,因为0乘任何数都为0,否则后面的阶乘便毫无意义。
接下来我们直接上代码(借鉴一位不知名大佬):
以上便是高精度数的内容了(开溜!!!),高精度数确实比较容易理解,但是自己第一次运用可能还是觉得会有些难度,但是,,,敲代码才是成功的诀窍😜