openjudge 1.6.10 大整数加法
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 大整数加法相关推荐
- 信息学奥赛一本通 1168:大整数加法 | OpenJudge NOI 1.6 10:大整数加法
[题目链接] ybt 1168:大整数加法 OpenJudge NOI 1.6 10:大整数加法 [题目考点] 1. 高精度 考察:高精加高精 高精度计算讲解 [解题思路] 注意:输入可能有多余的前导 ...
- 1.6编程基础之一维数组 10大整数加法
1.6编程基础之一维数组 10大整数加法 OpenJudge - 10:大整数加法 1168:大整数加法 信息学奥赛一本通(C++版)在线评测系统 P1601 A+B Problem(高精) A+B ...
- NOI OJ 1.6 10:大整数加法 C语言
描述 求两个不超过200位的非负整数的和. 输入 有两行,每行是一个不超过200位的非负整数,可能有多余的前导0. 输出 一行,即相加后的结果.结果里不能有多余的前导0,即如果结果是342,那么就不能 ...
- 大整数加法——求两个不超过200位的非负整数的和
10:大整数加法 描述 求两个不超过200位的非负整数的和. 输入 有两行,每行是一个不超过200位的非负整数,可能有多余的前导0. 输出 一行,即相加后的结果.结果里不能有多余的前导0,即如果结果是 ...
- 剑指offer第12题打印从1到n位数以及大整数加法乘法
字符和数字加减就是字符的ASCII码和数字直接加减. 方法一: 1)在字符串操作中给一个整形数字加(字符0)就是把它转化为字符,当然给一个字符减去(字符0)就可以把它转化为数字了:如果确实是最后一位字 ...
- javascript乘法和加法_js 大整数加法、乘法、除法
有一定的编程经验的人都知道,当我们对数据操作的时候,若数据过大,计算机将这个大数从十进制的转为二进制的,是没有那个类型的放的了的,因此,我们经常将一个大数转化为字符串来操作.接下来我将演示大整数的加法 ...
- 1168:大整数加法--2022.01.22 AC
/* 1168:大整数加法--2022.01.22 AC http://ybt.ssoier.cn:8088/problem_show.php?pid=1168c++中 cin.cin.get().c ...
- 信息学奥赛一本通 1181:整数奇偶排序 | OpenJudge NOI 1.10 06:整数奇偶排序
[题目链接] ybt 1181:整数奇偶排序 OpenJudge NOI 1.10 06:整数奇偶排序 [题目考点] 1. 排序 [君义精讲]排序算法 [解题思路] 解法1:将奇数和偶数分开,分别排序 ...
- Bailian2981 大整数加法【大数】(POJ NOI0106-10)
问题链接:POJ NOI0106-10 大整数加法. 大整数加法 描述 求两个不超过200位的非负整数的和. 输入 有两行,每行是一个不超过200位的非负整数,可能有多余的前导0. 输出 一行,即相加 ...
最新文章
- 计算机应用公共课程,公共基础课程中计算机应用管理制度
- Python进阶【第五篇】函数式编程及某些特殊函数
- sed 格式化输出df -h
- python基础知心得总结_【python】基础学习心得总结(一)
- biostar handbook: 第一周笔记汇总+第二周任务布置
- C#中 Convert与Parse的区别
- Linux中vi显示中文乱码的问题
- Wing IDE 5.0 破解之寻找注册码
- 异常检测2——PCA异常检测
- 计算文档中不同单词出现的次数
- 避免unicode字符被截断的方法
- 速读-对抗攻击的弹性异构DNN加速器体系结构
- 第九届蓝桥杯省赛b组c/c++
- unity code之FBX模型导入与渲染
- 租用国外服务器推荐哪一个?
- revit出图建模【尺寸定位标注】功能
- clusterprolifer gsea 富集分析
- 豆瓣,流行的秘密(解密流行真相)
- 从底层结构开始学习FPGA(5)----移位寄存器
- t420i升级固态硬盘提升_技术丨如何升级固态硬盘,提高电脑性能
热门文章
- java冰法_Java基础学习笔记二 Java基础语法
- 报错:SLF4J: Failed to load class org.slf4j.impl.StaticLoggerBinder“. SLF4J: Defaulting to no-operation
- 矩阵的秩:行秩等于列秩
- TIGASE 开发纪录一tigase的搭建
- 27什么样的图片是好图片
- 详解SVM支持向量机算法(一:感知器和SVM的优点)
- 数据挖掘常见的 p-value 解读
- 地磅称重硬件对接还有常用功能清单
- C/C++总结笔记——指针1:野指针、空指针(NULL和nullptr)、悬空指针、智能指针
- pixi.js # 中文版基础教程