OpCore Simplify:智能配置引擎如何颠覆macOS系统构建流程

核心内容摘要

面试官:GET 和 POST 请求的本质区别是什么?
Dress-Code开源数据集全攻略:从获取到应用的完整路径

5个步骤实现Axure RP本地化适配:设计师的零代码全中文界面方案

当在减法计算中有时候数很大当超出long long 的范围的时候我们需要利用高精度算法来计算。

此时我们不在利用int/long long 来存储数据而是用string来存储数据。

用字符串存储两个很大的整数在用数组存储数据之前需要进行判断减数和被减数谁更大谁大把谁当成被减数如果被减数减数最后在前面加一个负号即可之和再开辟两个数组把两个字符串里面存储的数字逆序存储在int数组中保证两个数字的低位对齐方便计算之和再遍历长度最长的那个数据让两个数组对应下标的值相减这个时候会产生借位问题以十进制为例当被减数该下标的值小于减数该下标的值就让该下标1对应的值减一该下标的值10之后再喝减数该下标的值相减其他进制n进制只需要把10换成n即可16进制除外需要转换字母在输出的时候要注意可能会有前导0就是比如222和221按以上方法会输出001我们需要删除前面的两个0删除前导0之后在进行输出注意如果前面被除数和除数进行了交换需要加负号具体代码/注释如下#includebits/stdc.h using namespace std; int main() { //用数组模拟高精度 //整型数组 //反转存储低位对齐 //高精度算法只能输入字符串 string s1, s2; cin s1 s2; int flag 1; //标记判断什么时候两个数交换 //当第二个数大于第一个数的时候两数交换让大数减小数 //不能直接s2s1因为当两个字符串的长度不一样的时候且第一个字符串的前几个字符比s2大的时候就无法正确比较 if ((s2s1s

size()s

size())||s

size()s

size()) { string s3; s3 s2; s2 s1; s1 s3; flag 0; } int lmax max(s

size(), s

size()); vectorint vec3(lmax

; vectorint vec1(lmax

; vectorint vec2(lmax

; //给两数组赋值 for (int i 0; i s

size();i) { vec1[s

size() - i] s1[i]-0; //赋值为和字符‘0’的差值不可以使用stoi因为这是字符转数字 } for (int i 0; i s

size(); i) { vec2[s

size() - i] s2[i]-0; } for (int i 1; i lmax;i) { if (vec1[i]vec2[i]) { //当被减数当位数字小于减数当位数字就需要借位 vec1[i 1]--; //借位 vec1[i] 10; //n进制把10换成n } vec3[i] vec1[i] - vec2[i]; } while (vec3[lmax]0lmax

{ //因为数组从下标1开始存的数所以lmax得大于1 lmax--; //删除高位的0 } if (!flag) { //如果满足上面交换就需要加负号 cout -; } for (int i lmax; i 1;i--) { cout vec3[i]; } }

zjzjzjzjzj中国免费-zjzjzjzjzj中国免费应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123