Advertisement

牛客网浮点加法大数运算系列

阅读量:
在这里插入图片描述

由于思路不够完善,感到有些遗憾/(ㄒoㄒ)/~~:

  • 将数值的整数部分与小数部分分别进行存储,并对这两部分分别实施加法运算。
  • 首先处理小数部分,因为该部分在运算过程中可能会出现进位现象。需要注意的是,小数部分的加法并非从最低位开始,而是以小数位数较少的那个数字的最低位为起点。例如,在a1=0.567a2=0.5678的运算中,应当从小数点后第三位开始进行相加。
  • 将小数部分产生的进位值作为参数传递给整数部分,之后只需执行一次大数加法操作即可完成整体计算。

我通常将一个数值如1234以数组形式a[4]={4,3,2,1}存入vector中。这种存储方式便于在最高位发生进位时直接通过pushback操作进行扩展。

复制代码
    vec sum(vec v1, vec v2, ll mod = 0) {
    	if (v1.size() > v2.size())swap(v1, v2);
    	ll l1 = v1.size(), l2 = v2.size(), res = 0;
    	vec v(l2);
    	fo

全部评论 (0)

还没有任何评论哟~