【高精度】简单高精度加法,石油大学
来源:互联网 发布:微信矩阵的作用 编辑:程序博客网 时间:2024/04/29 23:21
问题 B: 【高精度】简单高精度加法
时间限制: 1 Sec 内存限制: 64 MB题目描述
修罗王解决了计算机的内存限制问题,终于可以使用电脑进行大型的魔法运算了,他交给邪狼的第一个任务是计算两个非负整数A、B的和,其中A和B的位数在5000位以内。
输入
共两行数据,第一行为一个非负整数A,第二行为一个非负整数B,A、B的位数均在5000以内。
输出
输出一个非负数,即两数之和。
样例输入
11111111112222222222
样例输出
3333333333
AC代码:
#include <iostream>// 完美AC#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int maxn =5005;char a[maxn];char b[maxn];int num1[maxn];int num2[maxn];int sum[maxn+1];int main(){ memset(num1,0,sizeof(num1)); memset(num2,0,sizeof(num2)); memset(sum,0,sizeof(sum)); scanf("%s",a); int Len1 = strlen(a); for(int i=0;i<Len1;i++) num1[i] = a[Len1-1-i]-'0'; //退出循环时,num1[Len1-1] = a[0]-'0' ; scanf("%s",b); int Len2 = strlen(b); for(int i=0;i<Len2;i++) num2[i] = b[Len2-1-i]-'0'; int MAX = max(Len1,Len2); for(int i=0;i<MAX;i++){ sum[i] = num1[i] + num2[i]; //都把数 倒过来,才能直接这样相加 } for(int i=0;i<MAX;i++){ sum[i+1] += sum[i]/10; //最后一次循环时,i+1 = MAX,即sum[MAX] 有数 sum[i] = sum[i]%10; } if( sum[MAX] >0) MAX++; for(int i = MAX-1;i>=0;i--) printf("%d",sum[i]); printf("\n"); return 0;}
阅读全文
0 0
- 【高精度】简单高精度加法,石油大学
- 【高精度】被限制的加法,石油大学
- 简单高精度加法
- 简单高精度加法
- 高精度加法&高精度减法
- 高精度加法
- 高精度加法
- 高精度加法
- 高精度加法
- 高精度 加法
- 高精度加法
- 高精度加法
- 高精度加法
- 高精度加法
- 高精度加法
- 高精度加法
- 高精度加法
- 高精度加法
- 分治法求和最大的子数组
- 数据结构2
- Android 中this、getContext()、getApplicationContext()、getApplication()、getBaseContext() 之间的区别
- UNP第五章 标准I/O库
- 东软JavaWeb实训记-DAY8-小组项目开发实践(文件上传下载等操作)
- 【高精度】简单高精度加法,石油大学
- Android通过App启动另一个APP
- MySQL数据库的引擎有哪些?区别是什么?
- @Repository、@Service、@Controller 和 @Component区别与使用
- 乐固加壳的原理分析
- Java 并发机制(synchronize/Lock/volitale/CAS/AtomicInteger)的使用和实现
- 【二分图】poj 1325 Machine Schedule
- 【C】文件输入和输出!!!
- 阿里面试回来,想和Java程序员谈一谈