現將兩個數分別計算出長度,然後用將長度較短的數為界,寫乙個for迴圈,將兩個數從末往前依次相加。這個迴圈結束後,將長度較大的陣列未計入計算的數進行運算
#include#includeint main()
;//將陣列初始化為0
int l1,l2;
l1=strlen(a);
l2=strlen(b);
if(l1>l2)
c[k-1]=c[k-1]+y;
if(c[k-1]>=10)//若進製的值大於10,就再進一次
k--;
j--;
}for(;j>=0;j--)//將a陣列剩餘的數字加起來
k--;
}if(c[0]!=0) printf("%d",c[0]);//檢查和的長度是否加一
for(i=1;i=0;i--)
c[k-1]=c[k-1]+y;
if(c[k-1]>=10)
k--;
j--;
}for(;j>=0;j--)
k--;
}if(c[0]!=0) printf("%d",c[0]);
for(i=1;i首先要比較這兩個數的大小,然而因為是用乙個陣列存的,所以先比較其長度,若長度相同,則就用strcmp進行比較。若第乙個數小於第二個數,結果就會有乙個負號,但是通過陣列計算是得不到負號的,所以我就通過比較大小判斷是否需要新增負號
#include#includechar a[100],b[100];
int c[120];
int l1,l2;
void jian(char p,char q,int l1,int l2)//計算差值
c[k]+=x;//將差值賦給c陣列
k++;
j--;
} for(;i>=0;i--)
while(c[k-1]==0) k--;//去掉前導0
for(i=k-1;i>=0;i--) printf("%d",c[i]);
printf("\n");
}int main()
{ while(~scanf("%s %s",a,b))
{ l1=strlen(a);
l2=strlen(b);
if(l1>l2) jian(a,b,l1,l2);
else if(l10) jian(a,b,l1,l2);//a,b陣列長度相等時,a陣列大於b陣列的值
else if(strcmp(a,b)<0)//a,b陣列長度相等時,a
大整數類 實現加減法
上次寫了乙個 無符號大整數加法 是比較容易的,這次實現了完整的大整數的加減法,支援有符號的!不過實現起來感覺不是很順暢,感覺可以優化的地方還很多,先貼一下 日後再來優化。另,思路主要是模擬手算的過程,計算方式在注釋裡有說清楚。biginteger.h ifndef big integer h def...
大整數(高精度)加減法
第一次寫,涉及大整數加減運算 先來看看加法,主要思想是逐位相加,進製加1 include include using namespace std void add int a,int b string str1,string str2 void print int a 輸出控制,多餘的0不要輸出 i...
整數加減法練習
程式自動產生隨機數 srand 設定種子為系統時間,以保證每次執行程式產生的隨機數有差別 然後使用者輸入結果,程式判斷使用者輸入是否正確 減法運算時要保證隨機產生的a要大於b 用while迴圈判斷,當然前提條件是使用者選擇的為減法運算,這裡只保證式子產生的結果為非負整數 include includ...