网站专业建设,云南SEO网站建设,检察院门户网站建设情况,惠普网站建设的目标目录
高精度算法分类
高精度加减乘除的异同点
加和乘
相同点
减和除
相同点
不同点
处理前导0的方式 高精度算法分类 分类#xff1a;加、减、乘、除 其中加减乘都适用于两个数都是高精度#xff0c;除法因为除数是高精度的话不好用整除的方法#xff0c;所以除法时…目录
高精度算法分类
高精度加减乘除的异同点
加和乘
相同点
减和除
相同点
不同点
处理前导0的方式 高精度算法分类 分类加、减、乘、除 其中加减乘都适用于两个数都是高精度除法因为除数是高精度的话不好用整除的方法所以除法时被除数是高精度除数是整型。 高精度加减乘除的异同点 加和乘 相同点 需要从低位到高位处理 for(int istra.size()-1;i0;i--) c.push_back(stra[i]-0);加和乘处理向上进位 int t0;
for(...){t a[i];c.push_back(t % 10);t / 10;
}可以使用通用模板 加法 c[i]a[i];
c[i]b[i];
//然后统一对c进行进位处理乘法 c[ij] a[i]*b[j];//然后统一对c进行进位处理减和除 相同点 有可能当前位的数不够需要借用上一位 不同点 减法需要从低位到高位处理除法是从高位到低位处理 减法每一位都要处理上一位的借位情况借位要么是0要么是1 int t0;
//注意a是从低位到高位排序
for(int i0;ia.size();i){t a[i]-t;if(ib.size()) t - b[i];c.push_back(t % 10);//下一位的借位if(t 0) t1;else t 0;}除法更多的应该是叫凑位把高位的数*10和低位的数合并每个位置不需要再单独加减 int r0; //余数
//注意a是从高位到低位排序
for(int i0;ia.size();i){r r * 10a[i];c.push_back(r /b);r r % b;
}4.除法处理前导0的情况需要翻转把高位翻转到末尾 reverse(c.begin(),c.end());处理前导0的方式 四种运算都一样只是除法先要翻转数组 while(c.size()1 c.back()0) c.pop_back();