高精度加法(简明版C语言),高精度加法(简明版C语言)
问题描述
输入两个整数a和b,输出这两个整数的和。a和b都不超过100位。
算法描述
由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储。对 定义一个数组A,A[0]用于存储a的个位,A[1]用于存储a的十位,依此类推。同样可以用一个数组B来存储b。 计算c = a + b的时候,首先将A[0]与B[0]相加,如果有进位产生,则把进位(即和的十位数)存入r,把和的个位数存入C[0],即C[0]等于(A[0]+B[0])%10。然后计算A[1]与B[1]相加,这时还应将低位进上来的值r也加起来,即C[1]应该是A[1]、B[1]和r三个数的和.如果又有进位产生,则仍可将新的进位存入到r中,和的个位存到C[1]中。依此类推,即可求出C的所有位。 最后将C输出即可。
输入格式
输入包括两行,第一行为一个非负整数a,第二行为一个非负整数b。两个整数都不超过100位,两数的最高位都不是0。
输出格式
输出一行,表示a+ b的值。
样例输入
20100122201001221234567890 2010012220100122
样例输出
20100122203011233454668012
解题思路:
根据竖式加法的规则,从个位依次向高位进行相加。
例如:
2 3
+ 7
------------------------------------
2 (1)0其中,()内为进位数
------------------------------------
3 0
8 99
+ 1 22
------------------------------------
9(1)1(1)1
------------------------------------
1 0 2 1
#include
#include
#define N 101
int main(void){
int c[N]={0};
char a[N],b[N];
scanf("%s",a);
scanf("%s",b);
int i,j,h=0;
int len1,len2;
len1=strlen(a);
len2=strlen(b);
int temp=0; //作为c数组的下标
j=len2-1;
i=len1-1;
h=0; //存储进位
while(i>=0||j>=0){
a[i]=a[i]-'0'; //将字符转换为数字
b[j]=b[j]-'0';
if(i>=0&&j>=0){
c[temp]=a[i]+b[j]+h;
h=c[temp]/10;
c[temp]=c[temp]%10;
i--;
j--;
temp++;
}else if(i<0){ //第一个数组已经遍历完
c[temp]=b[j]+c[temp]+h;
h=c[temp]/10;
c[temp]=c[temp]%10;
j--;
temp++;
}else if(j<0){ //第二个数组已经遍历完
c[temp]=a[i]+c[temp]+h;
h=c[temp]/10;
c[temp]=c[temp]%10;
i--;
temp++;
}
}
//处理最左边的进位
while(h>0){
c[temp]=h%10;
h/=10;
temp++;
}
for(i=temp-1;i>=0;i--){
printf("%d",c[i]);
}
return 0;
}
高精度加法(简明版C语言),高精度加法(简明版C语言)相关推荐
- 一元多项式加法c语言,C语言一元多项式加法.doc
C语言一元多项式加法 //C语言数据结构_一元多项式加法#include #include #include #define OK 1#define ERROR 0typedef int Status ...
- 如何用c语言做高精度计算原理,C语言羁绊之高精度乘法计算
很大一部分借鉴了(C语言的高精度算法)这一博客,你们可以去看看.欢迎指正!!! 1,定义 对于计算机无法用普通数据类型(如:longint)表示的大整数进行乘法运算,称为高精度算法.这里的高精度乘法主 ...
- 【算法】高精度(加减乘除)包含高精度*高精度高精度/高精度
一,高精度加法 1.1模板 vector<int> add(vector<int> &A, vector<int> &B) // C = A + B ...
- bool类型返回值_Python 到底是强类型语言,还是弱类型语言?
推荐三个网站 1.Python进阶知识: http://python.iswbm.com 2.Python魔法技巧: http://magic.iswbm.com 3.PyCharm 手册: htt ...
- c++强大还是python强大-Python 到底是强类型语言,还是弱类型语言?
0.前言 我在上一篇文章中分析了 为什么 Python 没有 void 类型 的话题,在文章发布后,有读者跟我讨论起了另一个关于类型的问题,但是,我们很快就出现了重大分歧. 我们主要的分歧就在于:Py ...
- python语言的类型是_Python到底是强类型语言,还是弱类型语言?
0.前言 我在上一篇文章中分析了 的话题,在文章发布后,有读者跟我讨论起了另一个关于类型的问题,但是,我们很快就出现了重大分歧. 我们主要的分歧就在于:Python 到底是不是强类型语言?我认为是,而 ...
- c语言程序设计教程内容,(C语言程序设计教程.doc
(C语言程序设计教程 C语言程序设计教程 第一章程序设计基础知识 一.计算机程序:计算机的工作是用程序来控制的:程序是指令的集合,指令是计算机可以识别的命令. 二.程序设计语言:程序设计语言经历了从机 ...
- c语言字符怎么运算,c语言运算符号(c语言如何输入运算符号)
C语言运算符都有那些!各个运算符表示什么,怎么排列麻烦各位老师下,谢. 运算符的种类C语言的运算符可分为以下几类: 1.算术运算符 用于各类数值运算.包括加(+).减(-).乘(*).除(/).求余( ...
- c语言程序设计移动字母,C语言程序设计实例大全(220个例子)
C语言程序设计实例大全,C语言是世界上最流行.使用最广泛的高级程序设计语言之一,这里c语言 程序设计 实例 大全有220个例子供大家参考 c语言开发实例目录: 第一部分 基础篇 001 第一个C程序 ...
最新文章
- 虚拟机中的黑苹果系统经常卡死_程序员吐槽macOS 10.15系统:破坏SSH默认规则
- 记录一下vlfeat视觉库配置
- python显示无效语法怎么处理-Python不支持 i ++ 语法的原因解析
- 甲骨文全球大会——看SOA
- 怎样从0一步一步搭建用户激励体系
- Python趣味编程---Python也会讲笑话
- ubuntu 简单配置samba
- 微信小程序开发:绑定手机号获取验证码功能
- 如何以CMMI或ISO为指导实施过程改进(黑纸系列一)
- 文献总结--水印图像文献调研
- laravel入门教程(一)
- bootstrap Less
- 【Appium】使用W3C actions方法长按元素
- iview构建基本html页面,写前端页面步骤----vue+iview
- 在你们眼中,杭州和苏州都是江南名城,有什么区别?
- Oracle--优化
- 某牛世界杯clientKey及clientSecret获取
- CSUOJ-1986: 玄学
- Linux基础指令的基本操作(一)
- python+selenium牛刀小试之自动化模拟网站广告点击
热门文章
- 电脑锁屏按什么键解锁_手机屏幕密码忘了怎么解锁
- 大佬应该都懂的python语法,看看哪些是你不知道的?
- 机器视觉用c还是python_机器视觉_opencv-python环境搭建
- 数据分析流程和特征工程
- 12_python基础—函数基础(参数、返回值、调用)
- 大学物理光学思维导图_在线思维导图软件安利:简单、方便画图,大学生、小学生都能用...
- commit git idea 速度慢_关于Idea使用git时commit特别慢的问题及解决方法
- python的类里的属性是否可以为列表_Python中如何获取类属性的列表
- php 上传文件 例子,php上传文件实例
- linux rmp命令安装包在哪里_一文带你了解阿里云Linux服务器的基本操作