如题,我在洛谷ide和我用的vside上面的结果跑的不一样,洛谷ide总是在最后的输出多打印一个0,导致所有答案都是answer too long,我最后让程序少打印一个0(绿色部分减一)就全ac了,请问这是为什么呢 我自己在vs上运行图中代码是毫无问题的,现求助下各位,谢谢帮助了!
#include<bits/stdc++.h>
using namespace std;
int main()
{
char ch;
deque<int> s1, s2;
while ((ch = getchar()) != '\n' && ch != ' ')
s1.push_back(ch);
while ((ch = getchar()) != '\n' && ch != ' ')
s2.push_back(ch);
if (s1 == s2)
{
cout << 0;
return 0;
}
if (s2.size() > s1.size())
{
cout << '-';
swap(s1, s2);
}
if (s1.size() == s2.size())
{
int k;
for (k = 0; s1[k] == s2[k]; k++);
if (s2[k] > s1[k])
{
cout << '-';
swap(s1, s2);
}
}
while(s1.size() > s2.size())
s2.push_front('0');
for (int i = s2.size() - 1; i >= 0; i--)
{
if (s1[i] < s2[i])
{
s1[i - 1]--;
s1[i] += 10;
}
s1[i] -= s2[i];
}
int i;
for (i = 0; s1[i] == 0; i++);
for (; i < s1.size(); i++)
cout << (int)s1[i];
}