2981 大整數加法

2022-06-20 18:09:17 字數 1106 閱讀 8246

描述求兩個不超過200位的非負整數的和。

輸入有兩行,每行是乙個不超過200位的非負整數,可能有多餘的前導0。

輸出一行,即相加後的結果。結果裡不能有多餘的前導0,即如果結果是342,那麼就不能輸出為0342。

樣例輸入

22222222222222222222

33333333333333333333

樣例輸出

55555555555555555555

題意描述:

輸入兩行都不超過200位的非負整數

計算並輸出相加後的結果(去除前導零)

解題思路:

先將str1和str2都逆置(自定義逆置函式或者逆序儲存)

取兩者較長位數的長度,將短數補齊

一一對應計算

最後去除結果的前導零輸出即可

程式**:

1 #include2

const

int n=230

;3 #include

4void strr(char *str);

5int

main()621

else

22

27if(l==1 && str1[0]=='

0' && str2[0]=='0'

)283233 memset(sum,0,sizeof

(sum));

34for(i=0;i)

3542}43

44for(j=i;j>=0;j--)

45if(sum[j] > 0)//

去掉前導零

46break;47

for(i=j;i>=1;i--)

48 printf("%d"

,sum[i]);

49 printf("

%d\n

",sum[i]);

50}

51return0;

52}53void strr(char *str)

5462 }

易錯分析:

1、注意0 + 0 的情況,判斷時與字元『0』比較而不是0

2、逆置函式需要自寫

百練2981 大整數加法

剛接觸演算法,感覺很奇特.這貨不是數這貨不是數.其實就是模擬 1,num1為第乙個,num2可以為其他的多個數而不止是兩個,num1 num2,然後可以繼續輸入num2 2,用字串存數,所以這貨不是數.3,注意進製 4,注意輸出時,99 1 00的情況 include include include...

大整數加法

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 處理多餘的棧...