【笔试/面试】—— 从大数相减到大数求除(大数求余)
2016-04-14 20:49
411 查看
进行大数相除的一个简单思路是:从被除数中减去除数,每减去一次,就将结果加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语言大数相除及求余(一种方法)相关文章推荐
- 有趣的积水问题(Twitter编程面试题)
- 面试题86:八数码问题
- 【笔试/面试】—— 从同余定理到大数求余
- 跋涉不止(42)
- 码农小汪-设计模式之-观察者模式 依赖倒置原则
- 面试题85:按指定精度打印开方后的结果
- 面试总结(截至2016/4/14)
- 程序员小笑话
- 程序员规划
- 码农小汪-设计模式-抽象工厂模式
- 码农小汪-设计模式-工厂方法模式 每一产品都有一个具体的实现工厂
- Leetcode(59)-Count Primes
- 一个面试大牛的经历
- 即腾讯面试和阿里面试4月总结
- 系统设计面试题
- 码农小汪-设计模式之-简单工厂模式 单一职责原则 重用代码
- 最基础、最全面的iOS面试题目
- 程序员浪漫利器
- iOS面试题基本答案一
- 那些著名或非著名的iOS面试题(上)