int a ;//数据类型的范围:-2^31~2^31-1,数量级为10^9
long long int ;//数据类型范围:-2^63~2^63-1,数量级为10^18
//由于进行较大的数运算时,无法用Int 和long long 所以下面需要学习高精度
一.高精度的加法
//算法核心;
c[i]+=a[i]+b[i];
c[i+1]=c[i]/10;
c[i]=c[i]%10;
加法完整代码:
//代码
#include<iostream>
using namespace std;
#include<math.h>
#include<string.h>
int a[505],b[505],c[505];
char s1[505],s2[505];
int main()
{
int la,lb,lc,i;
cin>>s1>>s2;
la=strlen(s1);
lb=strlen(s2);//从s[0]开始储存
for(i=0;i<la;i++)
a[la-i]=s1[i]-'0';//将字符转换成数字,并将字符转置便于计算
for(i=0;i<lb;i++)
b[lb-i]=s2[i]-'0';
lc=max(la,lb)+1;
for(i=1;i<=lc;i++)
{
c[i]+=a[i]+b[i];
c[i+1]=c[i]/10;
c[i]=c[i]%10;
}
if(c[lc]=&