#include<iostream>
#include<string.h>
using namespace std;
int strToInt( char* str, int* array )
{
int lenth = strlen( str );
for( int i=0; i<lenth; i++ )
{
array[lenth-1-i] = str[i]-'0';
}
return lenth;
}
int add(int*a,int alenth,int *b,int blenth,int*c)
{
int i;
int clenth;
if(alenth>blenth)
clenth=alenth;
else
clenth=blenth;
int x=0;//处理进位
for (i=0;i<clenth;i++)
{
c[i]=a[i]+b[i]+x;
x=c[i]/10;
c[i]=c[i]%10;
}
if(x) c[clenth++]=x;
return clenth;
}
int main()
{
char str[101];
int a[101];
int sum[101];
int sumlenth=0;
int strlen=0;
int i;
while(cin>>str&&strcmp(str,"0"))
{
strlen=strToInt(str, a);
sumlenth=add(a, strlen, sum, sumlenth, sum);
}
for(i=0;i<strlen;i++)
{
cout<<sum[sumlenth-1-i];
}
return 0;
}
高精度加法(自己的代码 用了循环有超时的嫌疑)
最新推荐文章于 2023-01-06 10:53:05 发布