问题描述

输入两个整数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语言)相关推荐

  1. 一元多项式加法c语言,C语言一元多项式加法.doc

    C语言一元多项式加法 //C语言数据结构_一元多项式加法#include #include #include #define OK 1#define ERROR 0typedef int Status ...

  2. 如何用c语言做高精度计算原理,C语言羁绊之高精度乘法计算

    很大一部分借鉴了(C语言的高精度算法)这一博客,你们可以去看看.欢迎指正!!! 1,定义 对于计算机无法用普通数据类型(如:longint)表示的大整数进行乘法运算,称为高精度算法.这里的高精度乘法主 ...

  3. 【算法】高精度(加减乘除)包含高精度*高精度高精度/高精度

    一,高精度加法 1.1模板 vector<int> add(vector<int> &A, vector<int> &B) // C = A + B ...

  4. bool类型返回值_Python 到底是强类型语言,还是弱类型语言?

    推荐三个网站 1.Python进阶知识: http://python.iswbm.com  2.Python魔法技巧: http://magic.iswbm.com 3.PyCharm 手册: htt ...

  5. c++强大还是python强大-Python 到底是强类型语言,还是弱类型语言?

    0.前言 我在上一篇文章中分析了 为什么 Python 没有 void 类型 的话题,在文章发布后,有读者跟我讨论起了另一个关于类型的问题,但是,我们很快就出现了重大分歧. 我们主要的分歧就在于:Py ...

  6. python语言的类型是_Python到底是强类型语言,还是弱类型语言?

    0.前言 我在上一篇文章中分析了 的话题,在文章发布后,有读者跟我讨论起了另一个关于类型的问题,但是,我们很快就出现了重大分歧. 我们主要的分歧就在于:Python 到底是不是强类型语言?我认为是,而 ...

  7. c语言程序设计教程内容,(C语言程序设计教程.doc

    (C语言程序设计教程 C语言程序设计教程 第一章程序设计基础知识 一.计算机程序:计算机的工作是用程序来控制的:程序是指令的集合,指令是计算机可以识别的命令. 二.程序设计语言:程序设计语言经历了从机 ...

  8. c语言字符怎么运算,c语言运算符号(c语言如何输入运算符号)

    C语言运算符都有那些!各个运算符表示什么,怎么排列麻烦各位老师下,谢. 运算符的种类C语言的运算符可分为以下几类: 1.算术运算符 用于各类数值运算.包括加(+).减(-).乘(*).除(/).求余( ...

  9. c语言程序设计移动字母,C语言程序设计实例大全(220个例子)

    C语言程序设计实例大全,C语言是世界上最流行.使用最广泛的高级程序设计语言之一,这里c语言 程序设计 实例 大全有220个例子供大家参考 c语言开发实例目录: 第一部分 基础篇 001 第一个C程序 ...

最新文章

  1. 虚拟机中的黑苹果系统经常卡死_程序员吐槽macOS 10.15系统:破坏SSH默认规则
  2. 记录一下vlfeat视觉库配置
  3. python显示无效语法怎么处理-Python不支持 i ++ 语法的原因解析
  4. 甲骨文全球大会——看SOA
  5. 怎样从0一步一步搭建用户激励体系
  6. Python趣味编程---Python也会讲笑话
  7. ubuntu 简单配置samba
  8. 微信小程序开发:绑定手机号获取验证码功能
  9. 如何以CMMI或ISO为指导实施过程改进(黑纸系列一)
  10. 文献总结--水印图像文献调研
  11. laravel入门教程(一)
  12. bootstrap Less
  13. 【Appium】使用W3C actions方法长按元素
  14. iview构建基本html页面,写前端页面步骤----vue+iview
  15. 在你们眼中,杭州和苏州都是江南名城,有什么区别?
  16. Oracle--优化
  17. 某牛世界杯clientKey及clientSecret获取
  18. CSUOJ-1986: 玄学
  19. Linux基础指令的基本操作(一)
  20. python+selenium牛刀小试之自动化模拟网站广告点击

热门文章

  1. 电脑锁屏按什么键解锁_手机屏幕密码忘了怎么解锁
  2. 大佬应该都懂的python语法,看看哪些是你不知道的?
  3. 机器视觉用c还是python_机器视觉_opencv-python环境搭建
  4. 数据分析流程和特征工程
  5. 12_python基础—函数基础(参数、返回值、调用)
  6. 大学物理光学思维导图_在线思维导图软件安利:简单、方便画图,大学生、小学生都能用...
  7. commit git idea 速度慢_关于Idea使用git时commit特别慢的问题及解决方法
  8. python的类里的属性是否可以为列表_Python中如何获取类属性的列表
  9. php 上传文件 例子,php上传文件实例
  10. linux rmp命令安装包在哪里_一文带你了解阿里云Linux服务器的基本操作