0
我試圖用stack<int>
添加兩個任意大的數字。我的代碼有什麼問題?使用堆棧添加兩個大號C++
我的resultStack似乎獲得了第一個正確的值,但它丟棄了其餘的數字。
My code can be found here at ideone
下面是我的代碼的一部分:
int carry=0, op1=0, op2=0;
while (true) {
op1=0,op2=0;
if (stack1.empty() && stack2.empty()) break;
if (!stack1.empty()) { op1 = stack1.top(); stack1.pop(); }
if (!stack2.empty()) { op2 = stack2.top(); stack2.pop(); }
int opTotal = 0;
opTotal = op1 + op2 + carry;
resultStack.push(opTotal%10);
if (opTotal >= 10) carry = 1; else carry = 0;
}
所以輸入在堆棧頂部有最不重要的數字,但輸出在頂部有最重要的數字? –
@brianbeuning但這應該沒關係。最後你可以扭轉堆疊,你會沒事的。 – Gasim
@DiscreteGenius多數民衆贊成那是因爲你的stack1和stack2沒有得到正確的值,除了第一個。 – Gasim