原题链接 https://www.luogu.org/problemnew/show/P1601

这个题提示的很清楚,并非简单的A+B,单纯的long  long型也不行(不要被样例所迷惑)。因为long long型最大是2的63次方-1,而这个题明确说明了两个加数a和b在10的500次方范围内,也就意味着有501位数字,远远的超出了long long的范围,这时候我们就要用到高精度运算了。简单的思路是这样的:将两个加数a和b看作是两个字符串,将每一位存入字符数字中,因为数组可以开得很大,501位数字就不在话下啦。然后再将字符数组里的数转化成int型的并按从个位到最高位的顺序存在另一个数组里在进行相加,最后再倒着输出,那么这个题就完美解决了,废话少说,上代码!

#include<iostream>
#include<cstdio>
#include<cstring>                   //求长度lena,lenb,lenc所要用到的头文件
using namespace std;
int a[501],b[501],c[501];          //初始化
int main()
{
char a1[501],b1[501];           
int lena,lenb,lenc,i,x;              
scanf("%s",a1);                        //输入字符串a1,b1
scanf("%s",b1);
lena=strlen(a1);                        //求字符串a1和b1的长度
lenb=strlen(b1);
for(i=0;i<=lena-1;i++)           
a[lena-i]=a1[i]-48;                      //将字符数组a1里的数转化为int型的,并倒存在数组a里面,方法是减去0的ASCII码48
for(i=0;i<=lenb-1;i++) 
b[lenb-i]=b1[i]-48;
lenc=1;
x=0;                                          //x表示所要进位的数
while(lenc<=lena||lenc<=lenb)            //lenc的长度要恒小于等于lena或lenb,因为a和b的长度可能不相等
{
c[lenc]=a[lenc]+b[lenc]+x;                 //数组c来存放对应位的a+b的和,别忘加上上一位的进位的数  
x=c[lenc]/10;                                     //x表示所要进位的数,如果不需要进位则x=0
c[lenc]%=10;                  
lenc++; 
}
c[lenc]=x;                                          //将x进到下一位
if(c[lenc]==0)                                    //处理最高位,去掉前面的0
lenc--;
for(i=lenc;i>=1;i--)                              //倒着输出
cout<<c[i];
cout<<endl;
return 0;
}

P1601 A+B Problem(高精)的更多相关文章

  1. 题解 P1601 【A+B Problem(高精)】

    P1601 A+B Problem(高精) 题目描述 高精度加法,x相当于a+b problem,b不用考虑负数. 输入输出格式 输入格式: 分两行输入a,b<=10^500 输出格式: 输出只 ...

  2. 洛谷 P1601 A+B Problem(高精)

    P1601 A+B Problem(高精) 题目背景 无 题目描述 高精度加法,x相当于a+b problem,[b][color=red]不用考虑负数[/color][/b] 输入输出格式 输入格式 ...

  3. 【洛谷P1601 A+B Problem(高精)】

    题目背景 无 题目描述 高精度加法,x相当于a+b problem,[b][color=red]不用考虑负数[/color][/b] 输入输出格式 输入格式: 分两行输入a,b<=10^500 ...

  4. 【洛谷p1601】A+B Problem(高精)

    高精度加法的思路还是很简单容易理解的 A+B Problem(高精)[传送门] 洛谷算法标签: 附上代码(最近懒得一批) #include<iostream> #include<cs ...

  5. 洛谷1601 A+B Problem(高精) 解题报告

    洛谷1601 A+B Problem(高精) 本题地址:http://www.luogu.org/problem/show?pid=1601 题目背景 无 题目描述 高精度加法,x相当于a+b pro ...

  6. BZOJ_1002_[FJOI2007]_轮状病毒_(递推+高精)

    描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1002 )*&*(^&*^&*^**()*) 1002: [FJOI20 ...

  7. bzoj 1876 高精

    首先我们知道,对于两个数a,b,他们的gcd情况有如下形式的讨论 当a为奇数,b为偶数的时候gcd(a,b)=gcd(a div 2,b) 当b为奇数,a为偶数的时候gcd(a,b)=gcd(a,b ...

  8. Linux 高精確的時序(sleep, usleep,nanosleep) from:http://blog.sina.com.cn/s/blog_533ab41c0100htae.html

    Linux 高精確的時序(sleep, usleep,nanosleep) (2010-04-14 17:18:26) 转载▼ 标签: 杂谈 分类: linux 首先, 我会说不保证你在使用者模式 ( ...

  9. c++ 普通高精除高精

    //codevs3118 高精度练习之除法 //打出了高精除高精,内心有点小激动. //还记得已开始学的时候非常难打 #include<cstdio>#include<cstring ...

  10. c++普通高精加

    //作为一名蒟蒻,还请诸位不要吐槽. //第一次打c++高精加,内心有点小激动. //为codevs3116 高精度练习之加法 //程序太简单,就不打注释了. #include<cstdio&g ...

随机推荐

  1. Item 16: 让const成员函数做到线程安全

    本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误.谢谢! 博客已经迁移到这里啦 如果我们在数学领域里工作,我们可能会发现用一个类来表示多项式会很方 ...

  2. en

    发音,这个应该算是学习英语的头等大事,如果没有机会和条件练好发音,也可以先将就着,不过后面你就会感觉到你说的人家可能会听不懂,我自己也曾经深受其害. 基本常用单词积累(大概2000~4000左右的词汇 ...

  3. Mike and strings CodeForces - 798B (简洁写法)

    题目链接 时间复杂度 O(n*n*|s| ) 纯暴力,通过string.substr()函数来构造每一个字符串平移后的字符串. #include <iostream> #include & ...

  4. Mixing x86 with x64 code (混合编写x86和x64代码)

    几个月前我小小的研究了在WOW64下的32位进程中运行native x64代码. 第二个设想是在64位进程下运行x86代码.它们都是可以的,如我google的一样, 已经有人在使用这两种方法了: ht ...

  5. Es6数值拓展

    Es6数值拓展 一,Number扩展 1,ES6 提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)和0o(或0O)表示. 将0b和0o前缀的字符串数值转为十进制,要使用Number方法 N ...

  6. [转帖]2015年时微软Win3.1崩溃迫使巴黎奥利机场短暂关闭

    https://www.ithome.com/html/it/188796.htm IT之家讯 2015年11月14日消息,上周法国巴黎奥利机场因为微软的Windows 3.1系统出现故障不得不迫使所 ...

  7. Oracle 备份表数据

    --备份表数据 select * from t_owners; --创建备份表 create table t_owners_copy ( id number, name ), addressid nu ...

  8. git fetch 和git pull 的差别

    1.git fetch 相当于是从远程获取最新到本地,不会自动merge,如下指令: git fetch orgin master //将远程仓库的master分支下载到本地当前branch中 git ...

  9. vue的地图插件amap

    https://www.jianshu.com/p/0011996b81e2(amap) npm install vue-amap --save

  10. 牛客练习赛13F m皇后

    题目链接:https://ac.nowcoder.com/acm/contest/70/F 题目大意: 略 分析: 可以分成四步计算冲突:水平方向,垂直方向,左斜线方向,右斜线方向.只要会处理水平方向 ...