华师一附中OI组

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1108|回复: 3
打印 上一主题 下一主题

P1601 A+B Problem(高精)

[复制链接]

738

主题

1485

帖子

5420

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5420
跳转到指定楼层
楼主
发表于 2018-4-19 14:17:19 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
题目描述
高精度加法,x相当于a+b problem,不用考虑负数

输入输出格式
输入格式:
分两行输入a,b<=10^500

输出格式:
输出只有一行,代表A+B的值
回复

使用道具 举报

5

主题

42

帖子

182

积分

注册会员

Rank: 2

积分
182
地板
发表于 2019-7-13 16:36:09 | 只看该作者
  1. // luogu-judger-enable-o2
  2. #include <iostream>
  3. #include <cmath>
  4. using namespace std;

  5. const int LENGTH = 505;

  6. int a[LENGTH],b[LENGTH];
  7. int la,lb,lc;
  8. int c[LENGTH];
  9. int main()
  10. {
  11.         string sa,sb;
  12.         cin>> sa >> sb;
  13.         la=sa.size(); lb=sb.size();
  14.         for(int i=1;i<=la;i++) a[i] = sa[la - i]-'0';
  15.         for(int i=1;i<=lb;i++) b[i] = sb[lb - i]-'0';
  16.         lc=max(la , lb);
  17.         for(int i=1;i<=lc;i++) c[i]=a[i]+b[i];
  18.         for(int i=1;i<=lc;i++)
  19.         if(c[i]>=10)
  20.         {
  21.                 c[i]-=10;
  22.                 c[i+1]++;
  23.         }
  24.         if(c[lc+1]!=0) lc++;
  25.         for(int i=lc;i>=1;--i) cout << c[i];
  26.         return 0;
  27. }
复制代码
回复 支持 反对

使用道具 举报

9

主题

158

帖子

470

积分

华一学生

积分
470
QQ
板凳
发表于 2018-8-27 15:23:27 | 只看该作者
  1. #include<iostream>
  2. using namespace std;
  3. int a[1000],b[1000],c[1000];
  4. string s1,s2;
  5. int main()
  6. {
  7.     cin>>s1>>s2;
  8.     int l1=s1.size(),l2=s2.size();
  9.     for(int i=1;i<=l1;i++)a[i]=s1[l1-i]-'0';
  10.     for(int i=1;i<=l2;i++)b[i]=s2[l2-i]-'0';
  11.     for(int i=1;i<=600;i++)
  12.     {
  13.         c[i]+=a[i]+b[i];
  14.         c[i+1]+=c[i]/10;
  15.         c[i]%=10;
  16.     }
  17.     int l=600;
  18.     while(!c[l]&&l>1)l--;
  19.     for(int i=l;i>=1;i--)cout<<c[i];
  20.     return 0;
  21. }
复制代码
回复 支持 反对

使用道具 举报

50

主题

215

帖子

619

积分

高级会员

Rank: 4

积分
619
沙发
发表于 2018-7-18 18:47:09 | 只看该作者
  1. #include<iostream>
  2. using namespace std;
  3. int a[1000]={},b[1000]={},c[1000]={};
  4. int i,j;
  5. string s1,s2;
  6. int main()
  7. {
  8.     cin>>s1;
  9.     cin>>s2;
  10.     a[0]=s1.size();
  11.     b[0]=s2.size();
  12.     for(i=a[0];i>=1;i--)
  13.     a[i]=s1[a[0]-i]-'0';
  14.     for(i=b[0];i>=1;i--)
  15.     b[i]=s2[b[0]-i]-'0';
  16.     for(i=1;i<=max(a[0],b[0]);i++)
  17.     {
  18.         c[i]=a[i]+b[i]+j;
  19.         j=c[i]/10;
  20.         c[i]%=10;
  21.     }
  22.     c[i]=j;
  23.     if(c[i]==0)i--;
  24.     for(;i>=1;i--)
  25.         cout<<c[i];
  26.     return 0;
  27. }
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|服务支持:DZ动力|华师一附中OI组  

GMT+8, 2024-11-2 04:38 , Processed in 0.184472 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表