当前位置: 首页 > news >正文

域名查询站长之家外贸公司如何运营

域名查询站长之家,外贸公司如何运营,手机销售网站的设计与实现,物流公司网站源码目录 一、高精度概念 二、高精度算法的实现 1、高精度加法#xff08;大整数相加#xff09; 2、高精度减法#xff08;大整数减法#xff09; 3、高精度乘法#xff08;大整数*小整数#xff09; 4、高精度除法#xff08;大整数/小整数#xff09; 一、高精度概… 目录 一、高精度概念 二、高精度算法的实现 1、高精度加法大整数相加 2、高精度减法大整数减法 3、高精度乘法大整数*小整数 4、高精度除法大整数/小整数 一、高精度概念 高精度算法是一种处理大数字的数学计算方法。在一般的科学计算中会经常算到小数点后几百位或者更多当然也可能是几百亿的大数字。一般这类数字统称为高精度数高精度算法是用计算机对于超大数据的一种模拟加减乘除乘方阶乘等运算。对于非常庞大的数字无法在计算机中正常存储。于是将这个数字拆开成一位一位的或者是四位四位的存储到一个数组中 用一个数组去表示一个数字这样这个数字就被称为是高精度数。 高精度就是说参与运算的数据和运算结果的范围超出标准数据类型能表示的数据大小范围的运算。此时如果要得到正确的计算结果就不能依靠普通方法实现了而要在普通运算原理的基础上加以辅助算法来实现超大数据的计算。 例如求两个 500 位的数据相乘的结果这时就要用到高精度算法了。 二、高精度算法的实现 1、高精度加法大整数相加 大整数又称为高精度整数,其含义就是用基本数据类型无法存储其精度的整数。 大整数的存储使用数组即可。 思路 先将大整数倒序存储然后从左往右相加这样才算是从低位往高位加并判断是否有进位加出来的数取余后尾插到要保存的vector中这样求出来的数还是逆序的但是主函数会从后往前读。 AC代码 #includeiostream #includestring #includevector using namespace std;//1、高精度加法(大整数加法) vectorint add(vectorint A, vectorint B) {//如果B更大因为下面代码都是以第一个形参作为for结束条件所以要让大的是第一个形参if (A.size() B.size()) return add(B, A);vectorint C;int t 0; //用来判断是否进位//注意这里是逆序的数从前往后加的for (int i 0; i A.size(); i){//for循环是以大的数来作为循环结束条件的t A[i];//for循环以A为结束条件这里不用格外判断if (i B.size()) t B[i];//因没以B为结束条件故这里要格外判断是否可以加C.push_back(t % 10);//加出来的数要的是余数t / 10; //判断是否有进位}if (t) C.push_back(t);//有可能最后加完还有进位//第二种写法//这种写法不用格外判断最后是否有进位//for (int i 0, t 0; i A.size()||t; i)//{// if (i A.size()) t A[i];//因为有t作为条件故这里要格外判断// if (i B.size()) t B[i];//因没以B为结束条件故这里要格外判断是否可以加// C.push_back(t % 10);//加出来的数要的是余数// t / 10; //判断是否有进位//}return C; }int main() {string a, b;cin a b;vectorint A, B;//把字符串逆序存入vector中方便后续计算for (int i a.size() - 1; i 0; --i) A.push_back(a[i] - 0);for (int i b.size() - 1; i 0; --i) B.push_back(b[i] - 0);auto C add(A, B);for (int i C.size() - 1; i 0; --i) cout C[i];cout endl;return 0; } 2、高精度减法大整数减法 思路 和加法区别在于其一减法是要借位而不是进位其二减法会导致有前导0存在。 什么是前导0比如124-113我们存的是421,311相减时是4-312-111-10然后尾插导致C为110我们最后是逆着读的即011(但正常124-11311)这里011肯定不对多了一个前导0故我们最后要把这个前导0去掉变成11然后逆着读出来就对了 AC代码  #includeiostream #includestring #includevector using namespace std;//比较哪个数大注意这里的数是从倒序存的故后面的才是高位 bool cmp(vectorint A, vectorint B) {if (A.size() ! B.size()) return A.size() B.size();for (int i A.size() - 1; i 0; --i)if (A[i] ! B[i]) return A[i] B[i];//不等从高位开始比return true;//相等 }vectorint sub(vectorint A, vectorint B) {//利用cmp函数比较使大的数一定是A与for循环代码相符vectorint C;int t 0;//判断借位for (int i 0; i A.size(); i){t A[i] - t;//每次都会减掉借位if (i B.size()) t - B[i];//关于(t10)%10t是减出来的数//t若为正数(但9)其t%1010%10t//t若为负数正好可以借位10然后取余数即可C.push_back((t 10) % 10);if (t 0) t 0;else t 1; //0肯定有借位了}//因为两个数相减会导致有多余的0出现故去除前导0//size()1是因为可能真的相减出现0这种0不算前导0while (C.size() 1 C.back() 0) C.pop_back();return C; }int main() {string a, b;cin a b;vectorint A, B;//把字符串逆序存入vector中方便后续计算for (int i a.size() - 1; i 0; --i) A.push_back(a[i] - 0);for (int i b.size() - 1; i 0; --i) B.push_back(b[i] - 0);vectorint C;if (cmp(A, B)) C sub(A, B); //正数else cout -, C sub(B, A); //负数for (int i C.size() - 1; i 0; --i) cout C[i];cout endl;return 0; }3、高精度乘法大整数*小整数 思路  AC代码  #includeiostream #includestring #includevector using namespace std;vectorint mul(vectorint A, int b) {vectorint C;for (int i 0, t 0; i A.size() || t; i){if (i A.size()) t A[i] * b;//加上t是因为上一次可能有乘出来的进位C.push_back(t % 10);t / 10;//计算进位}//当b是0时会出现前导0while (C.size() 1 C.back() 0) C.pop_back();return C; }int main() {string a;int b;cin a b;vectorint A;for (int i a.size() - 1; i 0; --i) A.push_back(a[i] - 0);auto C mul(A, b);for (int i C.size() - 1; i 0; --i) cout C[i];cout endl;return 0; } 4、高精度除法大整数/小整数 思路 AC代码 #includeiostream #includestring #includevector #includealgorithm using namespace std;vectorint div(vectorint A, int b, int r) {vectorint C;for (int i A.size() - 1; i 0; --i){r r * 10 A[i];C.push_back(r / b);r % b; //计算余数}//逆置:因为我们是正常求但最后是倒着读的且便于去除前导0reverse(C.begin(), C.end());while (C.size() 1 C.back() 0) C.pop_back();return C; }int main() {string a;int b;cin a b;vectorint A;for (int i a.size() - 1; i 0; --i) A.push_back(a[i] - 0);int r 0; //余数auto C div(A, b, r);for (int i C.size() - 1; i 0; --i) cout C[i];cout endl r endl;return 0; }
http://www.sadfv.cn/news/207782/

相关文章:

  • 淘宝关键词排名查询网站seo外包平台
  • 网站建设哪里找成全视频免费观看在线看第6季高清版下载
  • 易乐自助建站上海免费网站建设咨询
  • 网站内做全文搜索东莞市建设工程检测中心网站
  • 有哪些装修网站注册网站需要visa怎么办
  • 有域名了网站怎么做网站注册备案之后怎么做网站
  • seo网站推广企业创意设计图案
  • 微信支付 企业网站马化腾称视频号是全公司希望
  • 网站开发语言识别网站备案 上线
  • 简单网站建设哪家便宜东莞网站制作外包
  • 杭州网站建设培训班求个a站
  • 怎么做网站结构图长尾关键词查询工具
  • 网站里宣传视频怎么做wordpress章节添加章节
  • pc网站如何做移动网站成都软件外包公司
  • 淘宝客的wordpress模板下载地址seo发布网站
  • 信息发布网站设计免费做苗木网站
  • 外贸网站模板免费下载网站访问速度优化
  • 做兼职哪个网站好住建局哪个科室最吃香
  • 织梦网站被做跳转临漳专业做网站
  • 建网站怎么分类网站建设销售前景
  • wordpress qiniu-uploader 使用南宁seo多少钱报价
  • 哪家网站做推广好优化方案系列丛书
  • 中国建设银行网站的机构wordpress文章循环不带置顶文章
  • 家庭网络如何做网站服务器百度seo流量
  • 北京京水建设集团有限公司网站上海工程建设交易信息网站
  • 淮安做网站酷站网站
  • 网站带app建设南阳建设工程信息网站
  • 温州自适应网站建设深圳做英文网站的公司
  • 网站备案时间多久网站建设客户需求调查表
  • 网站分析流程郑州餐饮网站建设哪家好