int、float、double等基本数据类型的数据容量有限,不深究它们的具体范围是多大,但粗略估算,大概也不超过25位吧。如果有一个是50位的数字,基本数据类型根本无法存储这么大的数字,那我们应该怎么办?这时候,我们应该采用大数的思想:用数组来分别保存这50位数字中各个位的数字。
大数加法的步骤:
1.首先我们输入要相加的2个数字,由于我们在计算的时候,是先个位加个位,然后十位加十位 ... ..,并且还要考虑进位的问题,所以我们还要将输入的2个数字逆序,这样高位中的数字就在大的下标中,低位中的数字就在小的下标中,方便计算。
2.void addNumber(char *num_1,char *num_2,int *sum){
sum[0]=max(num_1,num_2);
for(int i=1;i<sum[0];i++)
{
sum[i]+=num_1[[i]+num_2[i];
sum[i+1]=sum[i]/10;
sum[i]=sum[i]%10;
}
}
我们从个位开始相加,也就是从低下标往高下标依次相加,并处理进位问题。