OJ 大數減法(使用棧的簡單例子)

2021-09-27 07:03:53 字數 1513 閱讀 6115

求兩個不超過200位的非負整數的差。

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

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

88888888888888888888

33333333333333333333

55555555555555555555
大數運算也同樣是單純地運算,小學的時候學過那種運算。

因為每次進行減法操作其實都只是對最後一位進行的(已經生成結果的不算最後一位的話),並且輸入輸出都非常符合棧的特點(先進後出)。

比如說輸入123456減去5648,首先進行的應該是最後一位,也就是6減去8。如果以棧來儲存的話,輸入的是123456,則棧top就是6,同樣另外乙個棧就是8。

所以減法操作在這裡就是最後乙個進入容器的數字進行的減法,所以可以考慮使用

另外需要考慮為負數這個問題,等等。

#include

#include

#include

using namespace std;

/** * 獲得某個字串的長度

*/int

length

(char str)

/** * 比較兩個字串對應的整數,誰大

* 因為是大數,所以不能使用已經提供的函式

*/int

bigger

(char str1,

char str2)

}return-1

;}// written by smileyan 多謝關注

intmain()

// 入棧

for(i=

0; str1[i]

!='\0'

; i++

)for

(i=0

; str2[i]

!='\0'

; i++

)int result;

// 如果是負數,則為1

bool flag=false;

while

(stack1.

empty()

==false&&stack2.

empty()

==false)

stack3.

push

(result);}

if(neg == true) cout<<

"-";

while

(stack3.

empty()

==false)

cout

}

並不難,如果回想一下小學學過的,列兩個數然後進行減法操作的過程的話。

smileyan

2023年9月19日 21:21

wxButton的簡單使用例子

預編譯標頭檔案 include 有關的問題請參看http blog.csdn.net kese archive 2007 08 25 1758555.aspx wxbuttonstudio.cpp include class wxbuttonframe public wxframe enum beg...

lua指令碼簡單的例子使用

測試的字串 print print print print print 測試的字串表達 print print html w3cschool菜鳥教程 print html 測試字元連線符 print print print print print s連線符 print print str 我是個 s...

順序棧的簡單使用

2018 3 3 資料結構 1.標頭檔案 在標頭檔案中自定義函式的原型,和相關結構體 對順序棧相關操作 include c語言標準輸入輸出流 順序棧的結構體模型 typedef int datatype define maxsize 100 typedef struct sqstack 1.初始化棧...