华师一附中OI组

标题: P1601 A+B Problem(高精) [打印本页]

作者: admin    时间: 2018-4-19 14:17
标题: P1601 A+B Problem(高精)
题目描述
高精度加法,x相当于a+b problem,不用考虑负数

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

输出格式:
输出只有一行,代表A+B的值
作者: 倚窗倾听风吹雨    时间: 2018-7-18 18:47
  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. }
复制代码

作者: 黄煦喆    时间: 2018-8-27 15:23
  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. }
复制代码

作者: JASONZHU    时间: 2019-7-13 16:36
  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. }
复制代码





欢迎光临 华师一附中OI组 (http://hsyit.cn/) Powered by Discuz! X3.2