int ,long long等資料型別所能表示的範圍有限,對於多位的大整數相加,這些資料型別不能實現,因此我們需要用陣列來儲存這行大整數。然後再陣列中進行逐位相加。(為了實現個位加個位,十位加十位,我們需要將數值的低位放在陣列前面,高位放在後面)。
**如下:
#include#include#define n 1000
int main()
,num2[n]=;
scanf("%s",ch1);
scanf("%s",ch2);
int l1=strlen(ch1),l2=strlen(ch2),k=0;
for(int i=l1-1;i>=0;i--)
num1[k++]=ch1[i]-48; //將ch1字元陣列的數字字元轉換為整型數字,然後逆向儲存在整型陣列num1中,即低位在前,高位在後。
k=0;
for(int j=l2-1;j>=0;j--)
num2[k++]=ch2[j]-48;將ch2字元陣列的數字字元轉換為整型數字,然後逆向儲存在整型陣列num2中,即低位在前,高位在後。
int max=l1>l2?l1:l2;
for(int k=0;k9)//考慮進製,
}while(num1[max]==0)//去掉前導0。
for(int i=max;i>=0;i--)
printf("\n");
return 0;
}
大整數加法
include include include include define debug void plus char char char int is valid char void reverse char int main int argc,char argv up loop 0 strcpy...
大整數加法
方法 這裡用了資料結構棧,實際上棧更方便實現高精度加法。步驟 1 第乙個資料加數按輸入順序 高位到低位 入棧1。此時棧頂為最低位 2 第二個資料加數按輸入順序 高位到低位 入棧2。此時棧頂為最低位 3 將棧1 棧2均pop出棧頂做加法,並考慮進製,結果入棧3,這時棧3正好是低位入棧。4 處理多餘的棧...
大整數加法
include include include define max len 200 int an1 max len 10 int an2 max len 10 char szline1 max len 10 char szline2 max len 10 int main bool bstarto...