我试图使用字符串来解决这个问题,但是我在编译器上得到了正确的测试用例答案,但是spoj说了错误的答案。
我尝试了隐藏测试用例0,0并进行了处理,但我仍然得到了错误的答案
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long int t=0,x=0,y=0,z=0,i=0;
cin>>t;
string s1,s2,s3;
while(t--)
{
cin>>s1>>s2;
reverse(s1.begin(),s1.end());
reverse(s2.begin(),s2.end());
x=stoi(s1);
y=stoi(s2);
z=x+y;
s3=to_string(z);
if(z!=0)
{
for(i=0;s3[i]!='\0';i++)
{
if(s3[i]=='0')
{
s3[i]='\0';
break;
}
}
reverse(s3.begin(),s3.end());
}
cout<<s3<<endl;
}
}
我在编译器上得到了正确的答案,但是当我在spoj上提交相同的代码时,我得到了错误的答案。这可能是因为网站期望的答案是int,并且我已经将Answer打印为String吗?
答案 0 :(得分:1)
在将其转换为字符串之前,应先从z整数的末尾删除0
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long int t=0,x=0,y=0,z=0,i=0;
cin>>t;
string s1,s2,s3;
while(t--)
{
cin>>s1>>s2;
reverse(s1.begin(),s1.end());
reverse(s2.begin(),s2.end());
x=stoi(s1);
y=stoi(s2);
z=x+y;
while(z%10==0)
{
z=z/10;
}
s3=to_string(z);
reverse(s3.begin(),s3.end());
cout<<s3<<endl;
}
}