OpenJudge - 10:大整数加法


解题思路:

1.大整数加法,对应的是高精度加法算法,利用数组模拟来解决

2.首先,明确long long范围都放不下的整数,我们应该想到用数组的方法,如果采取数组存取,那么就要涉及到字符数组或者字符串的操作,因为这串数字没有空格,无法利用cin的方法存入到整形数组中,那么可以定义两个字符串  string a,b;代表两个加数

3.将两个加数存入到字符串中后,接下来为了更好的操作模拟,把他们分别放入对应的整形数组中 int jia1[205],jia2[205]; 并再创建一个数组sum[205],用来存放和,在这里需要注意,数字在字符串中,下标0的位置是数字的最高位,末尾的编号对应的是最低位,那么存入数组中为了方便计算,要将最低位存入到整型数组的最低位中,在存储过程中,要记得字符串中的字符要减去48才能变成数字,然后再存入整型数组中

4.将两个加数都存入到整型数组后,便可以开始模拟,创建一个1-205的循环,(因为两个整数相加,结果位数不会超过最大整数的位数加1,所以205的位数足够用)从数组下标1的位置开始进行加运算,并将加的结果放入到和数组中

5.当都放入和数组中后,开始对和数组进行处理,因为可能会出现满十的情况,那么此时就要处理进位,用对应位置的值除以10,商累加到下一位编号的位置中,余数放入到本次编号的位置中。

6.完成输出,因为数组的第一位是最低位,我们应该从最高位开始输出,最高位可能有前导0的结果,此时我们可以利用打标记的方法,来判断从哪个位置输出

7.最后对0进行特殊判断,因为结果是0的话打标记是不输出结果的


#include<bits/stdc++.h>
using namespace std;
int jia1[205],jia2[205],he[205];
int main()
{string a,b;cin>>a>>b;int len_a=a.length();int len_b=b.length();int k1=0,k2=0;//将字符串数字放入字符数组jia1中 for(int i=len_a-1;i>=0;i--)jia1[++k1]=a[i]-48;for(int i=len_b-1;i>=0;i--)jia2[++k2]=b[i]-48;for(int i=1;i<=205;i++){he[i]=he[i]+jia1[i]+jia2[i];//将对应位置分别相加 he[i+1]=he[i+1]+he[i]/10;//处理进位,满十进1he[i]=he[i]%10;//保留进位后的余数 } bool flag=0;//打标记,去除前导0 for(int i=205;i>=1;i--){if(he[i]!=0)flag=1;if(flag==1)cout<<he[i];}if(flag==0)//做特殊判断,如果结果为0,输出0 cout<<0;return 0;
}

openjudge 1.6.10 大整数加法相关推荐

  1. 信息学奥赛一本通 1168:大整数加法 | OpenJudge NOI 1.6 10:大整数加法

    [题目链接] ybt 1168:大整数加法 OpenJudge NOI 1.6 10:大整数加法 [题目考点] 1. 高精度 考察:高精加高精 高精度计算讲解 [解题思路] 注意:输入可能有多余的前导 ...

  2. 1.6编程基础之一维数组 10大整数加法

    1.6编程基础之一维数组 10大整数加法 OpenJudge - 10:大整数加法 1168:大整数加法 信息学奥赛一本通(C++版)在线评测系统 P1601 A+B Problem(高精) A+B ...

  3. NOI OJ 1.6 10:大整数加法 C语言

    描述 求两个不超过200位的非负整数的和. 输入 有两行,每行是一个不超过200位的非负整数,可能有多余的前导0. 输出 一行,即相加后的结果.结果里不能有多余的前导0,即如果结果是342,那么就不能 ...

  4. 大整数加法——求两个不超过200位的非负整数的和

    10:大整数加法 描述 求两个不超过200位的非负整数的和. 输入 有两行,每行是一个不超过200位的非负整数,可能有多余的前导0. 输出 一行,即相加后的结果.结果里不能有多余的前导0,即如果结果是 ...

  5. 剑指offer第12题打印从1到n位数以及大整数加法乘法

    字符和数字加减就是字符的ASCII码和数字直接加减. 方法一: 1)在字符串操作中给一个整形数字加(字符0)就是把它转化为字符,当然给一个字符减去(字符0)就可以把它转化为数字了:如果确实是最后一位字 ...

  6. javascript乘法和加法_js 大整数加法、乘法、除法

    有一定的编程经验的人都知道,当我们对数据操作的时候,若数据过大,计算机将这个大数从十进制的转为二进制的,是没有那个类型的放的了的,因此,我们经常将一个大数转化为字符串来操作.接下来我将演示大整数的加法 ...

  7. 1168:大整数加法--2022.01.22 AC

    /* 1168:大整数加法--2022.01.22 AC http://ybt.ssoier.cn:8088/problem_show.php?pid=1168c++中 cin.cin.get().c ...

  8. 信息学奥赛一本通 1181:整数奇偶排序 | OpenJudge NOI 1.10 06:整数奇偶排序

    [题目链接] ybt 1181:整数奇偶排序 OpenJudge NOI 1.10 06:整数奇偶排序 [题目考点] 1. 排序 [君义精讲]排序算法 [解题思路] 解法1:将奇数和偶数分开,分别排序 ...

  9. Bailian2981 大整数加法【大数】(POJ NOI0106-10)

    问题链接:POJ NOI0106-10 大整数加法. 大整数加法 描述 求两个不超过200位的非负整数的和. 输入 有两行,每行是一个不超过200位的非负整数,可能有多余的前导0. 输出 一行,即相加 ...

最新文章

  1. 计算机应用公共课程,公共基础课程中计算机应用管理制度
  2. Python进阶【第五篇】函数式编程及某些特殊函数
  3. sed 格式化输出df -h
  4. python基础知心得总结_【python】基础学习心得总结(一)
  5. biostar handbook: 第一周笔记汇总+第二周任务布置
  6. C#中 Convert与Parse的区别
  7. Linux中vi显示中文乱码的问题
  8. Wing IDE 5.0 破解之寻找注册码
  9. 异常检测2——PCA异常检测
  10. 计算文档中不同单词出现的次数
  11. 避免unicode字符被截断的方法
  12. 速读-对抗攻击的弹性异构DNN加速器体系结构
  13. 第九届蓝桥杯省赛b组c/c++
  14. unity code之FBX模型导入与渲染
  15. 租用国外服务器推荐哪一个?
  16. revit出图建模【尺寸定位标注】功能
  17. clusterprolifer gsea 富集分析
  18. 豆瓣,流行的秘密(解密流行真相)
  19. 从底层结构开始学习FPGA(5)----移位寄存器
  20. t420i升级固态硬盘提升_技术丨如何升级固态硬盘,提高电脑性能

热门文章

  1. java冰法_Java基础学习笔记二 Java基础语法
  2. 报错:SLF4J: Failed to load class org.slf4j.impl.StaticLoggerBinder“. SLF4J: Defaulting to no-operation
  3. 矩阵的秩:行秩等于列秩
  4. TIGASE 开发纪录一tigase的搭建
  5. 27什么样的图片是好图片
  6. 详解SVM支持向量机算法(一:感知器和SVM的优点)
  7. 数据挖掘常见的 p-value 解读
  8. 地磅称重硬件对接还有常用功能清单
  9. C/C++总结笔记——指针1:野指针、空指针(NULL和nullptr)、悬空指针、智能指针
  10. pixi.js # 中文版基础教程