大数的运算已经困扰了我好长时间了,但是大数减法却还苦苦搜寻未果,先存这一篇加法吧!
#include <bits/stdc++.h>
#define M 1500
using namespace std;
int num1[M + 10];
int num2[M + 10];
char s1[M + 10];
char s2[M + 10];
int main()
{
std::ios::sync_with_stdio(false);
int i,j;
while(scanf("%s %s",s1,s2)!=EOF)
{
memset(num1,0,sizeof(num1));
memset(num2,0,sizeof(num2));
int len1 = strlen(s1);
int len2 = strlen(s2);
for(i=len1-1,j=0; i>=0; i--)
{
num1[j++]=s1[i]-'0';
}
for(i=len2-1,j=0; i>=0; i--)
{
num2[j++]=s2[i]-'0';
}
for(i=0; i<M; i++)
{
num1[i]+=num2[i];
if(num1[i]>=10)
{
num1[i]-=10;
num1[i+1]++;
}
}
bool falg=false;
for(i=M;i>=0; i--)
{
if(falg)
{
printf("%d",num1[i]);
}
else if(num1[i])
{
printf("%d",num1[i]);
falg=true;
}
}
if(!falg)
{
printf("0\n");
}
else
{
printf("\n");
}
}
return 0;
}
大数加法
最新推荐文章于 2023-02-11 11:25:04 发布