【笔试/面试】—— 从大数相减到大数求除(大数求余)
来源:互联网 发布:深圳湾软件产业基地 编辑:程序博客网 时间:2024/05/18 03:46
进行大数相除的一个简单思路是:从被除数中减去除数,每减去一次,就将结果加1,直到被除数小于除数为止,此时的被除数即为大数求余的余数。从被除数中减去除数使用的是大数减法,结果+1使用的是大数加法。
大数相减
使用 string 类,便于字符串操作;
void BigNumSub(string& s1, const string& s2){ int l1 = s1.length(), l2 = s2.length(); int t1 = l1, t2 = l2; int i = 0; int carrier = 0; while (t2 > 0) { int d1 = s1[l1 - 1 - i] - '0'; int d2 = s2[l2 - 1 - i] - '0'; if (d1 - d2 - carrier >= 0) s1[l1 - 1 - i] = d1 - d2 - carrier + '0'; else { s1[l1 - 1 - i] = d1 - d2 - carrier + 10 + '0'; carrier = 1; } ++i; --t2; } int s = s1.find_first_not_of("0"); s1 = s1.substr(s);}
大数相除
References
[1] C语言大数相除及求余(一种方法)
0 0
- 【笔试/面试】—— 从大数相减到大数求除(大数求余)
- 【笔试/面试】—— 从同余定理到大数求余
- 大数相除和求余 (高精度/ int型)
- 大数求余(String求余)
- 高精度问题之大数相除和求余
- 大数运算(三)——大数相除求余数和商
- 大数相除求余数
- 大数求余
- 大数求余
- 大数求余
- 大数求余
- 大数求余
- 大数求余
- 大数求余
- 大数求余
- 大数求余
- 大数求余
- Bestcoder 大数求余
- HDU1016素数环
- CentOS 7 命令行如何连接无线网络
- LeetCode代码分析——5. Longest Palindromic Substring
- 了解window
- getDrawingCache()和Android中的截图方法简介
- 【笔试/面试】—— 从大数相减到大数求除(大数求余)
- 源码包方式搭建LAMP环境
- sublime3 + markdown 笔记
- JAVA实验三 抽象类的继承和接口的实现 (多态)
- ArcGIS Engine笔记(一)数据访问方式总结
- 09.---抽象类、接口、instanceof、final、Object
- 【day0414 C++】STL stack 栈的使用
- Runtime 理解
- iOS SDK:那些关于iOS调试的技巧