大数加法
来源:互联网 发布:四六级听力软件 编辑:程序博客网 时间:2024/06/04 20:56
一般的编译器认为 int 型是 4 个字节(32位),long long 型是 8 个字节(64位)。根据类型的取值范围可以知道,超过20位的整数加法就不能使用一般的数据类型直接相加了。
取值范围:
int -2^31 ~ 2^31-1 即 -2147483648 ~ 2147483647
unsigned int0 ~ 2^32-1 即0 ~ 4294967296
long long -2^63 ~ 2^63-1 即 -9223372036854775808~ 9223372036854775807
unsigned long long0 ~ 2^64-1 即0 ~ 18446744073709551615
将数据表示成string类型,再像平时我们做加法一样按位相加就可以计算大数加法了。具体代码如下:
string addStrings(string& num1, string& num2) {// Write your code herestring strResult;;int len1 = num1.length();int len2 = num2.length();char ch0 = '0';int jinwei = 0;int maxlen = len1 > len2 ? len1 : len2;strResult.resize(maxlen);for(int i = 0; i < maxlen; i++) {int sum = 0;int a1 = 0, a2 = 0;if (len1-i-1 >= 0 && len2-i-1 >=0 ) {a1 = charToint(num1.at(len1-i-1));a2 = charToint(num2.at(len2-i-1));}else if(len1-i-1 >= 0 && len2-i-1 <0) {a1 = charToint(num1.at(len1-i-1));a2 = 0;}else if(len1-i-1 < 0 && len2-i-1 >=0 ) {a1 = 0;a2 = charToint(num2.at(len2-i-1));}sum = a1 + a2 + jinwei;if(sum >= 10) {jinwei = 1;sum = sum - 10;}elsejinwei = 0;strResult.at(maxlen-i-1) = ch0 + sum;}if(jinwei) {string str1("1");strResult.insert(0, str1);}return strResult;}
阅读全文
0 0
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 如何对innerHTML获得的内容转义
- Unity3d代码获取隐藏物体
- python简单学习:类、类与对象、继承、读取文件
- BT下载原理简介
- Activity生命周期启动方式及启动模式
- 大数加法
- Codeforces Round #420 (Div. 2) D
- 线程死锁
- 时间的获取与格式转换
- OpenCV学习笔记(27) 灰度直方图均衡化 练习
- log4j的8个日志级别(OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、 ALL)
- spring mvc redirect 重定向 跳转并传递参数
- 进程注入后门工具Cymothoa
- TiDB RC3 Release