高精度加法天才
Posted rhythm-
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高精度加法天才相关的知识,希望对你有一定的参考价值。
问题 A: 【高精度】加法天才
时间限制: 1 Sec 内存限制: 64 MB提交: 14 解决: 10
[提交] [状态] [讨论版] [命题人:]
题目描述
贝贝是一个聪明的小孩,他总喜欢玩数字加法的游戏。一天,他的数学老师为了考一考他的能力,出了一道这样的题:要求他在短时间内计算出两个大数相加的结果。这两个大数可不是普通的数字,它们是11位以上的“庞然大物”。
请你编程序,帮贝贝解决这个问题。
输入
两行,分别是两个需要相加的数A和B,这两个数在10^11~10^100之间。
输出
1行,是两个大数相加的结果。
样例输入
8569742356145896
215783669444444427
样例输出
224353411800590323
#include <iostream> #include <string> using namespace std; string add(string a,string b){ if(a.size()<b.size()){ string temp=a; a=b; b=temp; } int len1=a.size(),len2=b.size(),flag=0,pa,pb,sum; while(len1>0){ pa=a[len1-1]-‘0‘; pb=len2>0?b[len2-1]-‘0‘:0; sum=pa+pb+flag; a[len1-1]=‘0‘+sum%10; flag=sum/10; len1--;len2--; } if(flag)a="1"+a; return a; } int main(){ string a,b; cin>>a>>b; cout<<add(a,b)<<endl; return 0; }
以上是关于高精度加法天才的主要内容,如果未能解决你的问题,请参考以下文章