#include<iostream>
#include<stdlib.h>
#include<climits>
#include<stdio.h>
#include<math.h>
#include<algorithm>
#include<vector>
#include<queue>
#include<string>
#include<string.h>
using namespace std;
struct bigi{
int d[1001];
int len;
bigi(){
memset(d,0,sizeof(d));len=0;
}
bigi(string s){
len=s.size();
memset(d,0,sizeof(d));
for(int i=0,j=len-1;i<s.size();j--,i++)
d[i]=s[j]-'0';
}
};
bigi add(bigi a,bigi b){
int car=0,sum=0,i,j;
bigi c;
for(i=0,j=0;i<a.len||j<b.len;i++,j++){
sum=a.d[i]+b.d[j]+car;
c.d[c.len++]=sum%10;
car=sum/10;
}
if(car!=0)
c.d[c.len++]=car;
return c;
}
bigi mult(bigi a,int n){
int car=0,sum=0,i,j;
bigi c;
for(int i=0;i<a.len;i++){
sum=a.d[i]*n+car;
c.d[c.len++]=sum%10;
car=sum/10;
}
while(car){
c.d[c.len++]=car%10;
car/=10;
}
while(c.d[c.len-1]==0)
c.len--;
c.len=max(c.len,1);
return c;
}
bigi pro(bigi a,bigi b){
bigi sum("0");
for(int i=0;i<b.len;i++){
bigi cur=mult(a,b.d[i]);
for(int j=0;j<i;j++)
cur=mult(cur,10);
sum=add(sum,cur);
}
return sum;
}
bigi subt(bigi a,bigi b){
int br=0,sum=0,i,j;
bigi c;
for(i=0,j=0;i<a.len;i++,j++){
sum=a.d[i]-b.d[j]-br;
if(sum<0){
c.d[c.len++]=sum+10;
br=1;
}
else{
c.d[c.len++]=sum;
br=0;
}
}
while(c.d[c.len-1]==0)
c.len--;
c.len=max(1,c.len);
return c;
}
int cmp(bigi h,bigi l){
if(h.len!=l.len)
return h.len-l.len;
for(int i=h.len-1;i>=0;i--)
if(h.d[i]!=l.d[i])
return h.d[i]-l.d[i];
return 0;
}
int main(){
string op1,op2;
while(cin>>op1>>op2){
bigi a(op1);bigi b(op2);
bigi sum=add(op1,op2);
bigi mlt=pro(op1,op2);
bigi sub;
int neg=0;
if(cmp(a,b)<0){
neg=1;
sub=subt(b,a);
}
else
sub=subt(a,b);
for(int i=sum.len-1;i>=0;i--)
cout<<sum.d[i];
cout<<endl;
if(neg==1)
cout<<"-";
for(int i=sub.len-1;i>=0;i--)
cout<<sub.d[i];
cout<<endl;
for(int i=mlt.len-1;i>=0;i--)
cout<<mlt.d[i];
cout<<endl;
}
return 0;
}
/**************************************************************
Problem: 1037
User: cust123
Language: C++
Result: Accepted
Time:30 ms
Memory:1524 kb
****************************************************************/
题目1037:Powerful Calculator
最新推荐文章于 2019-07-20 03:58:57 发布