大整数加法
来源:互联网 发布:java之父 求职 编辑:程序博客网 时间:2024/05/24 06:00
- 总时间限制:
- 1000ms
- 内存限制:
- 65536kB
- 描述
求两个不超过200位的非负整数的和。
- 输入
- 有两行,每行是一个不超过200位的非负整数,可能有多余的前导0。
- 输出
- 一行,即相加后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。
- 样例输入
2222222222222222222233333333333333333333
- 样例输出
55555555555555555555
#include <iostream>#include <string.h>#define LEN 200#define MAX(a, b) (((a) > (b)) ? (a) : (b))#define MIN(a, b) (((a) < (b)) ? (a) : (b))int main(int argc, char *argv[]){char num1[LEN];char num2[LEN];int i, j, k=0;int result[LEN+10];int len1, len2;int adjust=0;std::cin>>num1;std::cin>>num2;len1=strlen(num1);len2=strlen(num2);memset(result, 0, sizeof(int)*(LEN+10));if(len1>=len2){for(i=len1-1, j=len2-1; i>=0; i--){if(i>=(len1-len2)){result[k]+=(int)(num1[i]+num2[j]-'0'-'0');if(result[k]>=10){result[k]%=10;adjust=1;}elseadjust=0;j--;}else{result[k]+=(int)(num1[i]-'0');if(result[k]>=10){result[k]%=10;adjust=1;}elseadjust=0;}if(adjust)result[k+1]++;k++;}}else{for(i=len2-1, j=len1-1; i>=0; i--){if(i>=(len2-len1)){result[k]+=(int)(num1[j]+num2[i]-'0'-'0');if(result[k]>=10){result[k]%=10;adjust=1;}elseadjust=0;j--;}else{result[k]+=(int)(num2[i]-'0');if(result[k]>=10){result[k]%=10;adjust=1;}elseadjust=0;}if(adjust)result[k+1]++;k++;}}adjust=0;for(i=LEN+9; i>=0; i--){if(result[i]!=0)adjust++;if(adjust>0)std::cout<<result[i];}return 0;}
0 0
- 大整数加法
- 大整数加法
- 高精度 大整数加法
- 大整数加法
- 大整数加法
- 大整数加法
- 大整数加法
- 大整数加法计算
- zoj1292大整数加法
- 大整数加法
- 大整数加法
- 大整数加法函数
- 大整数加法
- 大整数加法
- 大整数加法
- 大整数加法
- 大整数加法
- 【算法】大整数加法
- JDBC连接数据库整理
- Base类sizeof大小 -- C++
- 拿起笔来做刀枪 · 之一 再造一个dom4j
- 谈谈如何设计秒杀服务
- tiny210(s5pv210)移植u-boot(基于 2014.4 版本)——移植u-boot-spl.bin(内存初始化)
- 大整数加法
- Oracle 获得以百分号结尾的脚本
- select常见事件
- 拿起笔来做刀枪 · 之二 再造一个spring
- transient关键字
- 你还在拼命考证吗?OUT了!从学历到学力的华丽转身
- HDU 1020 Encoding
- tiny210(s5pv210)移植u-boot(基于 2014.4 版本)——移植u-boot-spl.bin(点亮led灯)
- 驱动开发之 文件系统识别器