描述求兩個不超過200位的非負整數的和。
輸入有兩行,每行是乙個不超過200位的非負整數,可能有多餘的前導0。
輸出一行,即相加後的結果。結果裡不能有多餘的前導0,即如果結果是342,那麼就不能輸出為0342。
樣例輸入
22222222222222222222
33333333333333333333
樣例輸出
55555555555555555555
題意描述:
輸入兩行都不超過200位的非負整數
計算並輸出相加後的結果(去除前導零)
解題思路:
先將str1和str2都逆置(自定義逆置函式或者逆序儲存)
取兩者較長位數的長度,將短數補齊
一一對應計算
最後去除結果的前導零輸出即可
程式**:
1 #include2const
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 處理多餘的棧...