我正在尝试使用stack<int>
添加两个任意大的数字。我的代码有什么问题?
我的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;
}
答案 0 :(得分:0)
而不是使用stringstream
进行转换,这会导致您的实施中出现问题,您可以这样做
stack.push(input[i] - '0');
[编辑]测试:http://ideone.com/b2n5l9