今天和同学聊天,发现自己要想去远方,必须好好练练自己了。
大整数,很简单的一个问题,直到今天,我才知道怎么实现。。。
发现当你把刷题当作一种兴趣,你就可以乐在其中,真的。
不过为什么我用C++一直实现不了,就很郁闷了,明明可以的。。。。
#include <stdio.h>
#include <string.h>
#define Max 210
int a1[Max];
int a2[Max];
char sa1[Max];
char sa2[Max];
int main()
{
scanf("%s%s",sa1,sa2);
int i,j;
memset(a1,0,sizeof(a1));
memset(a2,0,sizeof(a2));
i=0;
for(j=strlen(sa1)-1;j>=0;j--) //注意输入顺序,存储时倒过来,a1[0]对应个位
a1[i++]=sa1[j]-'0';
j=0;
for(i=strlen(sa2)-1;i>=0;i--)
a2[j++]=sa2[i]-'0';
for(i=0;i<Max;i++){
a1[i]+=a2[i];
if(a1[i]>=10){
a1[i]-=10;
a1[i+1]++;
}
}
bool flag=false;
for(i=Max;i>=0;i--) //从前往后输出,要注意下标变化,倒过来
{
if(flag)
printf("%d",a1[i]);
else if(a1[i]){
printf("%d",a1[i]);
flag=true;
}
}
if(!flag)
printf("0");
return 0;
}