在csdn上查大数加法,查到的大多数都是用字符数组做的,现在给大家介绍一种不用字符数组的方法,来计算一个大数+1.
源码如下
#include<stdio.h>
int* plusOne(int* digits, int digitsSize, int* returnSize)
{
int i,j,t;
printf("Please input the arraysize\n");
scanf("%d",&digitsSize);
for(i=0;i<digitsSize;i++)
{
printf("Please input the %d-th number\n",i);
scanf("%d",&digits[i]);
}
for(i=0;i<digitsSize/2;i++)
{
t=digits[i];
digits[i]=digits[digitsSize-1-i];
digits[digitsSize-1-i]=t;
}
digits[0]++;
for(i=0;i<digitsSize;i++)
{
if(digits[i]==10)
{
digits[i+1]++;
digits[i]=0;
}
}
printf("after plus one\n");
for(i=0;i<digitsSize/2;i++)
{
t=digits[i];
digits[i]=digits[digitsSize-1-i];
digits[digitsSize-1-i]=t;
}
for(i=0;i<digitsSize;i++)
{
if(digits[0]==0)
{
digits[0]=10;
}
printf("%d",digits[i]);
}
}
int main()
{
int a[100],b,c[100];
plusOne(a,b,c);
return 0;
}
希望能对大家有所帮助 (o_o)