hdu1002题解
算法
高精度,我用了最单纯暴力的高精度,反正是ac了
坑
坑在输出格式,详见代码
然后上代码
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int a1[100000],a2[100000];
int main()
{
int t;
scanf("%d",&t);
string s1,s2;
int a1[1000],a2[1000],c[1000];
for(int j=1;j<=t;j++)
{
memset(a1,0,sizeof(a1));
memset(a2,0,sizeof(a2));
memset(c,0,sizeof(c));
cin>>s1>>s2;
a1[0]=s1.length();
a2[0]=s2.length();
for(int i=1;i<=a1[0];i++) a1[i]=s1[a1[0]-i]-'0';
for(int i=1;i<=a2[0];i++) a2[i]=s2[a2[0]-i]-'0';
int n=max(s1.length(),s2.length());
for(int i=1;i<=n;i++)
{
c[i]=a1[i]+a2[i]+c[i];
if(c[i]>=10) {c[i]%=10;c[i+1]++;}
}
printf("Case %d:\n",j);
cout<<s1<<" + "<<s2<<" = ";
for(int i=n+1;i>=1;i--) {if(i==n+1) if(c[i]==0) continue; printf("%d",c[i]);}
printf("\n");
if(j!=t) printf("\n");
}
return 0;
}
就这样高精度,没啥