
(emmmm)
这道题成功让我见识到了Dev撤回的高端大气上档(dàng)次。
A+B A-B A*B A/B A%B Problem【传送门】(真是个优秀的高精)
算法:::::::(模板题弄这么费劲干什么??)
先说一下,代码没有完成!没有完成!没有完成!(高精除放弃)
#include<iostream>//代码未ac
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<string>
#include<cstring>
using namespace std;
char a1[],b1[];
int a[],b[],d[],e[],lena,lenb,lend;
int c[];
void sum();
void difference();
void product();
int main()
{
scanf("%s",a1);
scanf("%s",b1);
lena=strlen(a1);
lenb=strlen(b1);
for(int i=;i<lena;i++){a[lena-i]=a1[i]-;d[lena-i]=a[lena-i];}
for(int i=;i<lenb;i++){b[lenb-i]=b1[i]-;e[lenb-i]=b[lenb-i];}
sum();
difference();
product();
}
void sum()
{
int x=,lenc=;memset(c,,sizeof(c));
while(lenc<=lena||lenc<=lenb){
c[lenc]=a[lenc]+b[lenc]+x;
x=c[lenc]/;
c[lenc]%=;
lenc++;
}c[lenc]=x;
if(c[lenc]==)lenc--;
for(int i=lenc;i>=;i--)cout<<c[i];
cout<<endl;
}
void difference()
{
memset(c,,sizeof(c));
if(strcmp(a1,b1)==)
cout<<strcmp(a1,b1)<<endl;
else{
if(lena<lenb||(lena==lenb&&strcmp(a1,b1)<)){
cout<<"-";
int i=;
while(i<=lena||i<=lenb){
if(b[i]<a[i]){b[i]+=;b[i+]--;}
c[i]=b[i]-a[i];
i++;}lend=i;}
else {
int i=;
while(i<=lena||i<=lenb){
if(b[i]>a[i]){a[i]+=;a[i+]--;}
c[i]=a[i]-b[i];
i++;}lend=i;}
while((c[lend]==)&&lend>)lend--;
for(int j=lend;j>=;j--)cout<<c[j];
cout<<endl;
}
}
void product()
{
memset(c,,sizeof(c));
for(int i=;i<=lena;i++){int x=;
for(int j=;j<=lenb;j++){
c[i+j-]=d[i]*e[j]+x+c[i+j-];
x=c[i+j-]/;
c[i+j-]%=;
}c[i+lenb]=x;
}
int lene=lena+lenb;
while(c[lene]==&&lene>)lene--;
for(int i=lene;i>=;i--)cout<<c[i];
cout<<endl;
}//(可劲压行也没压下去)
这个撤回真的如同韩学长说的:撤着撤着就不知道去哪了??害得我又改了好多……(好迷)
嗯end-(悄咪咪地讲我用python水过的这个题)