码迷,mamicode.com
首页 > 编程语言 > 详细

高精度算法

时间:2018-05-08 22:19:36      阅读:251      评论:0      收藏:0      [点我收藏+]

标签:算法   swap   lse   swa   out   高精度加法   work   void   ios   

高精度加法:

#include<iostream>
using namespace std;
const int MAXN=500005;//初始化数组 
string z,v;
int a[MAXN]={0},b[MAXN]={0},ans[MAXN]={0};
void workplus()
{
    cin>>z>>v;
    long int x=z.length();
    long int y=v.length();
    for(int i=x-1;i>=0;i--)a[i]=z[x-1-i]-0;
    for(int i=y-1;i>=0;i--)b[i]=v[y-1-i]-0; 
    int w=0;w=x>y?x:y;
    for(int i=0;i<w;i++)
    {
        ans[i+1]=(a[i]+b[i]+ans[i])/10;
        ans[i]=(a[i]+b[i]+ans[i])%10; 
    }
    bool t=false;
    for(int i=MAXN-1;i>=0;i--)
    {
        if(ans[i]!=0||t==true)
        {
            cout<<ans[i];
            t=true;
        }        
    }
    if(t==false)
      cout<<0;
    return;
}
int main()
{
  workplus();
  return 0;   
}

 

高精度减法:

#include<iostream>
#include<cstring>
#include<algorithm>
#include<cmath>
#include <cstdlib>
using namespace std;
const int maxn=100001;
int l1,l2;
int a[maxn],b[maxn];
string s1,s2;
void swap(string &a,string &b)
{
    string t;
    t=a;
    a=b;
    b=t;
}
bool judge(string a,string b)
{
    if(a.size()<b.size())return true;
    if(a.size()>b.size())return false;
    for(int i=0;i<a.size();++i)
    {
        if(a[i]>b[i])return false;
        if(a[i]<b[i])return true;
    }
    return false;
}
void work()
{
    cin>>s1>>s2;
    if(judge(s1,s2))
    {   
        swap(s1,s2);
        cout<<-;
    }
    l1=s1.size();
    l2=s2.size();
    for(int i=0;i<=l1;i++)a[l1-i]=s1[i]-0;
    for(int i=0;i<=l2;i++)b[l2-i]=s2[i]-0;//?
    for(int i=1;i<=l1;++i)
    {
      a[i]-=b[i];
      if(a[i]<0)
      {
        a[i+1]--;
        a[i]+=10;    
      }    
    }
    while(a[l1]==0&&l1>1)l1--;
    for(int i=l1;i>=1;--i)
        cout<<a[i];
        return;
}
int main()
{
    work();
    return 0;
}

 

高精度算法

标签:算法   swap   lse   swa   out   高精度加法   work   void   ios   

原文地址:https://www.cnblogs.com/ltlt/p/9010911.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!