wordpress建网站缺点,allintitle:湛江网站建设 seo,9377传奇世界,江苏省建设厅网站是高精度乘除法#xff08;超详细#xff09;
题目1-高精度乘法
给定两个非负整数#xff08;不含前导 0#xff09; A 和 B#xff0c;请你计算 AB 的值。
输入格式 共两行#xff0c;第一行包含整数 A#xff0c;第二行包含整数 B。
输出格式 共一行#xff0c;包含…高精度乘除法超详细
题目1-高精度乘法
给定两个非负整数不含前导 0 A 和 B请你计算 A×B 的值。
输入格式 共两行第一行包含整数 A第二行包含整数 B。
输出格式 共一行包含 A×B 的值。
数据范围 1≤A的长度≤100000, 0≤B≤10000 输入样例 2 3 输出样例 6
//算法思想乘法比较简单只要掌握乘法的原理进行调试即可。#includeiostream
#includecstring
#includealgorithm
#includecstdio
#includevectorusing namespace std;vectorint cheng(vectorint A,int b){vectorint C;int c0;for(int iA.size()-1;i0;i--){ccA[i]*b;C.push_back(c%10);c/10;}if(c) C.push_back(c); //最高位如果存在的话要写入C里面。while(C.size()!1 C.back()0) C.pop_back();//把多余的零删除return C;
}int main(){string a;cina;vectorint A;int b;cinb;for(int i0;ia.size();i) A.push_back(a[i]-0);vectorint C;Ccheng(A,b);for(int iC.size()-1;i0;i--) coutC[i];return 0;
}}算法思想乘法比较简单与普通的乘法不同不论第二个被乘数是多大有几位都看成是一个只有一位的数。在计算的时候将第二个数当做只有一位的数进行计算。结果的每一位都是乘数的每一对与被乘数相乘对10取余。
题目2 高精度除法
给定两个非负整数不含前导 0 AB请你计算 A/B 的商和余数。
输入格式 共两行第一行包含整数 A第二行包含整数 B。
输出格式 共两行第一行输出所求的商第二行输出所求余数。
数据范围 1≤A的长度≤100000, 1≤B≤10000, B 一定不为 0 输入样例 7 2 输出样例 3 1 #includeiostream
#includecstring
#includealgorithm
#includecstdio
#includevectorusing namespace std;vectorint div(vectorint A, int b, int r)
{vectorint C;r 0;for (int i 0; iA.size(); i ){r r * 10 A[i]; //每次将得到的余数乘以10之后再加上A的下一位A[i]C.push_back(r / b); //注意在这除的是b之后放到商r % b; //这里也是b即重新计算余数r}reverse(C.begin(), C.end()); //为了与加减乘保持一致同时也方便后面去0while (C.size() 1 C.back() 0) C.pop_back();return C;
}int main(){string a;cina;vectorint A;int b;cinb;int r0;for(int i0;ia.size();i) A.push_back(a[i]-0);vectorint C;Cdiv(A,b,r);for(int iC.size()-1;i0;i--) coutC[i];coutendlr;return 0;
}
算法思想模拟实际上的除法的计算过程每次得到的余数乘10之后再对b取余以此类推。注意除法与加减乘不同是从最高位开始算与实际除法过程相符。。