高精度算法
标签:long code span col scan namespace 数据 flag style
是一共n个数据,请计算这n个数据的和(高位数,可以超过long long)
#include
#include
using namespace std;
const long long maxn=1e8+1;
int a[maxn],b[maxn],v[maxn];
int mid,flag;
char s[maxn],x[maxn];
int main()
{
int n,i,j,t,lx,ls,l=0;
scanf("%d",&n);
while(n--)
{
scanf("%s",x);
lx=strlen(x);
memset(b,0,sizeof(b));
for (i=0; i)
{
b[i]=x[lx-1-i]-‘0‘;
}
l=max(lx,l);//取x和之前求和后的数组的最大长度
for (i=0; i)
{
a[i]+=b[i];//每个位数的数字相加
}
}
for (i=0; i)
{
if (a[i]>=10)//如果这个位数的数字超过了10,就mod 10 ,向前面进位
a[i+1]+=a[i]/10;
a[i]%=10;
}
while(a[l])//如果最高位进位了,那就让l的长度往上加
{
a[l+1]=a[l]/10;
a[l]%=10;
l++;
}
for (i=l-1; i>=0; i--)//由于数组从0开始,注意从循环从l-1开始
{
printf("%d",a[i]);
}
printf("\n");
return 0;
}
高精度算法
标签:long code span col scan namespace 数据 flag style
原文地址:https://www.cnblogs.com/ypw1131115630/p/13021402.html
文章来自:
搜素材网的
编程语言模块,转载请注明文章出处。
文章标题:
高精度算法
文章链接:http://soscw.com/index.php/essay/39212.html
评论