高精度问题之大数相加
来源:互联网 发布:云计算的历史 编辑:程序博客网 时间:2024/05/01 11:50
AC代码如下:
#include <iostream>#include <string>using namespace std;// 实现大数相加 结果存放在num中 void bigIntergerAdd(string &num, string add) {int goBit = 0; // 存放进位// 先交换下顺序 加数的位数要比较少if (num.length() < add.length()) {string tmp = num;num = add;add = tmp;} string tmp (num.length() - add.length(), '0');add = tmp + add; // 利用string的+号特性 不采用逆序相加法 int len1 = num.length(), len2 = add.length();for (int i = len1 -1 ; i>= 0; --i) {int tmp = ((num[i] - '0') + (add[i] - '0') + goBit) ;num[i] = tmp% 10 + '0';goBit = tmp/10;}// 特殊情况处理if (goBit != 0) num.insert(0, string(1, (char)goBit +'0')); } int main(int argc, char** argv) {string s1;string result;int i =0;while (cin>> s1) {if (s1 == "0") {cout<< result<< endl;break;} if (i ==0) {i=1;result = s1;} else bigIntergerAdd(result, s1);} return 0;}
解题心的: 就是基本的一对一模拟手算。。借助c++的string 不用逆序运算了。很方便的补0. 最后处理下前导0的问题。
0 0
- 高精度问题之大数相加
- poj1503(高精度运算之大数相加)
- 高精度大数相加
- 大数相加(高精度)
- 高精度问题之大数相乘
- 大数(相加,高精度)模板
- 高精度问题之大数求幂
- hdu 1753 大数相加(高精度)
- 高精度加法——大数相加
- 大数相加的问题
- 大数相加问题
- HDU1002大数相加问题
- 大数相加问题
- 算法--大数相加问题
- 两个大数相加问题
- 大数相加问题 POJ1503
- 大数相加问题
- 大数相加之我见
- Swiper 滑动插件
- HDU 1214
- 234Palindrome Linked List
- codis的proxy层HA
- Android Service 两种启动方式的区别
- 高精度问题之大数相加
- vector的reserve(),resize(),capacity()
- 在Eclipse里自动导入相应包的类名的快捷键
- scikit-learn:3.2. Grid Search: Searching for estimator parameters
- RHEL十一(归档文件并在系统间复制文件)
- Moving Tables-贪心
- ZOJ 3888 Twelves Monkeys (预处理+优先队列)
- Android系列--DOM、SAX、Pull解析XML
- Manacher算法