加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

杭电OJ【1002】A + B Problem II 大数求和

发布时间:2020-12-14 02:32:07 所属栏目:大数据 来源:网络整理
导读:思路分析: 1.两数组从最高位开始相加并存入数组中,直到其中一个结束。 2.将未加完的数组直接加到新数组中,判断最后一位是否需要进位。 3.数组从低位输出。 代码: #include iostream #include string.h using namespace std; int main() { ??? int n,q; ?

思路分析:

1.两数组从最高位开始相加并存入数组中,直到其中一个结束。

2.将未加完的数组直接加到新数组中,判断最后一位是否需要进位。

3.数组从低位输出。


代码:

#include <iostream>
#include <string.h>

using namespace std;

int main()
{
??? int n,q;
??? cin>>n;
??? for(q=1;q<=n;q++)
??? {
??????? int i,j,m,c[1005],l1,l2,d;
??????? char a[1005],b[1005];
??????? cin>>a>>b;
??????? l1=strlen(a);
??????? l2=strlen(b);
??????? d=0;
??????? for(i=l1-1,j=l2-1,m=0;i>=0&&j>=0;i--,j--,m++)
??????? {
???????? d=a[i]-48+b[j]-48+d;
???????? c[m]=d%10;
???????? d=d/10;
??????? }
??????? if(m==l1)
??????? {
??????????? while(j>=0)
??????????? {
??????????? d=b[j]-48+d;
??????????? c[m]=d%10;
??????????? d=d/10;
??????????? j--;m++;
??????????? }
??????? }
??????? else
??????? {
??????????? while(i>=0)
??????????? {
??????????? d=a[i]-48+d;
??????????? c[m]=d%10;
??????????? d=d/10;
??????????? i--;m++;
??????????? }

??????? } ??????? if(d!=0){c[m]=d;m++;} ??????? cout<<"Case "<<q<<":"<<endl; ??????? cout<<a<<" "<<"+"<<" "<<b<<" "<<"="<<" "; ??????? for(i=m-1;i>=0;i--) ??????????? cout<<c[i]; ??????? if(q<n)cout<<endl; ??????? cout<<endl; ??? } ??? return 0; }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读