雨灿网站建设网站建设之开展电子商务
news/
2025/9/26 20:33:01/
文章来源:
雨灿网站建设,网站建设之开展电子商务,西安品牌策划,我的网站要怎样做才能让人家搜到4、正整数高精度
出现高精度的情况一般只有C会出现#xff0c;python会无限制#xff0c;java有大整数#xff0c;所以基本上不用考虑#xff0c;一般会出现四种情况
一个较大数A 一个较大数B一个较大数A - 一个较大数B一个较大数A * 一个数一个较大数A / 一个数 这里…4、正整数高精度
出现高精度的情况一般只有C会出现python会无限制java有大整数所以基本上不用考虑一般会出现四种情况
一个较大数A 一个较大数B一个较大数A - 一个较大数B一个较大数A * 一个数一个较大数A / 一个数 这里补充一个知识 A10 和 len(A)10 前一个A 只能取 0-10 后一个A 是A的位数小于10 也就是说 A的取值范围为0~9999999999 4.1、高精度加法
如果我们用数组去存储一个数应该按下面这种方式去存储方便去进位 那么我们来看看模板
//模板
vectorint add(vectorint A, vectorint B) {vectorint c;int t 0;//进位for (int i 0; i A.size()|| iB.size(); i){//依次加上ab上的位数if (i A.size()) t A[i];if (i B.size()) t B[i];// t%10就会得出该位的余数 比如 77 14 这里 14%10 4c.push_back(t % 10);// 然后这里是看是否进位 没有进位就会变成0 有的话就会变成1// 例如 14/10 1 9/10 0t / 10;}//循环完看最高位是否进位 如果有的话就加上1if (t) c.push_back(1);return c;
} 注意这里vector A传进来的数组一定是一个倒着存储着大整数的数组当然你遍历返回出来的数组也需要倒着输出才能得到我们正常的显示。
4.2、高精度减法
在考虑高精度减法的时候我们也是按照倒序的存储方式 这里需要注意的是我们要先判断两个大整数谁大谁小的问题。
//判断是否 AB
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) {vectorint c;for (int i 0,t 0; i A.size(); i){t A[i] - t;if (i B.size()) t - B[i];//这里t 10 %10 是为了防止0的情况出现c.push_back((t 10) % 10);//判断是否需要借位 如果要借位那么就减去 //t的状态只有两种 0,1 1就是借位了 0就没借if (t 0) t 1;else t 0;}//这里是去掉前面的0 如果结果为001 那么就去掉前面两个0//这里的位数是根据A的位数来的 例如 A 是 123 B是120 那么123-120 003while (c.size() 1 c.back() 0) c.pop_back();return c;
}4.3、高精度乘法 注意这里是一个高精度的整数 X 低精度的整数 //乘法模板
vectorint mul(vectorint A, int b) {vectorint c;int t 0;//进位for (int i 0; i A.size() || t; i) {if (i A.size()) t A[i] * b;//模10是为了得个位还剩多少c.push_back(t % 10);// 这里除以10为了得到进多少位t / 10;}return c;
}4.4、高精度除法 注意这里是一个高精度的整数 / 低精度的整数 //除法模板 商是c 余数是 r
vectorint div(vectorint A, int b, int r) { //r是引用的方式传回去vectorint c; //商 r 0;for (int i A.size() - 1; i 0; i--) {//把当前位留出来加上下一位//例12/11 1*102/11 r r * 10 A[i];c.push_back(r / b);r % b;}reverse(c.begin(), c.end());//去掉前导0while (c.size() 1 c.back() 0) c.pop_back();return c;
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/918754.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!