CCF NOI1138 高精度加法
问题链接:CCF NOI1138 高精度加法。
时间限制: 1000 ms 空间限制: 262144 KB
题目描述
给两个正整数,计算它们的和。
输入
两行,每行表示一个数(位数达10000位)。
输出
输出它们的和。
样例输入
1
2
样例输出
3
数据范围限制
位数达10000位
提示
问题分析
这是一个加法计算问题,但是给的数位数多,可能达到10000位,超出了所有整数类型能够表示的范围。
大数计算一种是构建一个大数类进行计算,另外一种是直接计算。
人们使用阿拉伯数字,据说是印度人发明的。需要注意的一点是,阿拉伯数字的高位在左边,阅读上是从左到右,而计算上人们则是从低位算起。
大数可以放在数组中,为了计算上的方便,应该把低位放在下标小的地方,高位放在下标大的地方。
读入的数可以放在字符数组或字符串变量中,高位在左低位在右。
程序说明
程序采用直接模拟计算。
要点详解
- 使用宏定义可以使得代码可阅读性增强。
- 加法计算需要考虑进位,实际上每一位的加法是三个数相加。
参考链接:(略)。
100分通过的C语言程序:
#include <stdio.h>
#include <string.h>#define BASE 10
#define N 10000char a[N+1], b[N+1];
char ans[N+1];int main(void)
{int anslen, carry, len, i, j;scanf("%s", a);scanf("%s", b);memset(ans, 0, sizeof(ans));anslen = len = strlen(a);for(i=len-1, j=0; i>=0; i--)ans[j++] = a[i] - '0';len = strlen(b);if(len > anslen)anslen = len;carry = 0;for(i=len-1, j=0; i>=0; i--,j++) {ans[j] += b[i] - '0' + carry;carry = ans[j] / BASE;ans[j] %= BASE;}while(carry > 0) {ans[j] += carry;carry = ans[j] / BASE;ans[j++] %= BASE;}if(j > anslen)anslen = j;for(i=anslen-1; i>=0; i--)printf("%d", ans[i]);printf("\n");return 0;
}
CCF NOI1138 高精度加法相关推荐
- CCF NOI1139 高精度减法
问题链接:CCF NOI1139 高精度减法. 时间限制: 1000 ms 空间限制: 262144 KB 题目描述 给两个正整数a和b,计算它们的差.题目保证a>=b 输入 两行每行一个数, ...
- CCF NOI1089 高精度运算
问题链接:CCF NOI1089 高精度运算. 时间限制: 1000 ms 空间限制: 262144 KB 题目描述 输入N对位数不超过1000的正整数,求它们的和. (编程使用strunc创建 ...
- 基础练习 高精度加法
基础练习 高精度加法 时间限制:1.0s 内存限制:512.0MB 问题描述 输入两个整数a和b,输出这两个整数的和.a和b都不超过100位. 算法描述 由于a和b都比较大,所以不能直接使用语言中的标 ...
- 用C++的类重载高精度加法,乘法和等于符号
运行结果: 代码如下: #include<iostream> #include<algorithm> #include<string.h> #include< ...
- PAT甲级1024 Palindromic Number:[C++题解]回文串和高精度加法
文章目录 题目分析 题目链接 题目分析 一个判断是否是回文数的函数:check,思路是使用双指针从两端分别往里走. 另一个是高精度加法函数add,传入两个vector. 另外,vector逆序构造可以 ...
- PAT甲级1023 Have Fun with Numbers:[C++题解]高精度加法和两个vector大小比较
文章目录 题目分析 题目链接 题目分析 使用高精度加法高精度加法板子求 这个数的两倍,存在一个vector中. 所谓高精度就是使用string来存大的数,然后模拟列竖式加法,结果一位一位压入数组vec ...
- 高精度加法(C++实现)
高精度加法 简介 用于计算含有超过一般变量存放不下的非负整数 高精度加法这个过程是模拟的小学竖式加法计算 步骤 以下有顺序之分 数组清零 输入 获取长度 逆置 字符型数字转成对应的整型数字 计算并输出 ...
- 《信息学奥赛一本通》 高精度加法。输入两个正整数,求它们的和。
高精度加法.输入两个正整数,求它们的和. 算法分析 升级版代码 算法分析 输入两个数到两个变量中,然后用赋值语句求它们的和,输出.但是,我们知道,在C++语言中任何数据类型都有一定的表示范围.当两个被 ...
- 高精度加法(非负)和大数阶乘及和汽水问题
高精度加法(非负)和大数阶乘 文章目录 高精度加法(非负)和大数阶乘 一.问题描述 二.代码 三.问题描述 四.代码 五.问题描述 六.代码 一.问题描述 二.代码 #define _CRT_SECU ...
最新文章
- JDBC常见面试题集锦(二)
- NSArray和NSMutableArray
- CS起源pointermap找基址+工具函数测试
- Buffer Pool--内存总结1
- IIS 7.5 Express概况
- HDU - 4608 I-number
- Gartner 发布2019年超融合魔力象限:新增深信服一员!
- dbml mysql_MySQL数据库笔记二:数据类型及数据库操作
- 再谈注意力机制 | 运用强化学习实现目标特征提取
- php时间序列比对,常用在线序列比对工具
- VRAR应该是工具,而不是“玩具”
- aspx 请求不到后端_2021了你该知道的6个Node.js后端框架
- 使用Animation编辑器编辑动画
- 社交APP软件开发流程解析
- 联合作战效能评估软件
- android x5 webview 第一次,android studio中配置X5 webview时的一个坑
- 《动手学深度学习》网页版
- 小程序开发有哪些方式?
- Windows 10如何找回显示桌面图标,一键快速回到桌面
- 谈谈Java对象的生命周期
热门文章
- 从SDE库文件手工删除SDE图层(转载)
- 微服务注册中心为什么要使用Consul替代Eureka?
- 无缝世界网游服务器架构的设计思路
- matlab 连通域数量,【Matlab】找到矩阵中每个连通域的最小值
- r 语言 ggplot上添加平均值_技术贴 | R语言:ggplot堆叠图、冲积图、分组分面、面积图...
- 计算走线长度_高速走线长度的一些思考
- 配置ssd为缓存_SSD小讲堂丨新电脑剪视频还卡?原因给你们找到了!
- LCP 13. 寻宝
- 关于RecyclerView(二)设置EmptyView
- linux 怎么往内核加驱动,向Linux内核添加驱动