核心内容摘要
《泡我家的黑田同学》:当青春遇上心动,一场不期而遇的可爱风暴!
当在减法计算中有时候数很大当超出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