C++ SPOJ错误答案ADDREV
我的代码非常简单明了。但我在提交时得到了错误的答案。我不知道为什么会这样!这是代码C++ SPOJ错误答案ADDREV,c++,debugging,C++,Debugging,我的代码非常简单明了。但我在提交时得到了错误的答案。我不知道为什么会这样!这是代码 #include<iostream> #include<string> using namespace std; void sum(string num) { int i,len=num.length(); int j=len-1; int carry=0; string answer; int s=0; for(i=0,j;i<len;i++,j--)
#include<iostream>
#include<string>
using namespace std;
void sum(string num)
{
int i,len=num.length();
int j=len-1;
int carry=0;
string answer;
int s=0;
for(i=0,j;i<len;i++,j--)
{
s = (num[i]-'0')+(num[j]-'0')+carry;
if (s>10&&j!=0)
{
carry = s/10;
s = s%10;
}
else if (s>10&&j==0)
{
carry=s/10; s=s%10; answer+=s+'0';answer+=carry+'0'; break;
}
answer+=s+'0';
}
int sz=answer.size();for(int j=sz-1;j>=0;j--) cout<<answer[j];
}
int main(int argc,char **argv)
{
int n;cin>>n;
for(int i=0;i<n;i++)
{
string no;cin>>no;
sum(no);cout<<endl;
}
}
我没有分析您的代码,但这里有一些关于SPOJ的提示: 重新仔细阅读描述,看看你是否遗漏了什么。 检查边缘情况,看看您的输出是否有意义。 注意空格。检查输出的末尾是否有多余的换行符/空格。
此代码被接受重新格式化代码,无法读取。失败消息是什么?考虑到冗长、错误的答案等,一些关于代码应该做什么的提示也很好。无论此代码做什么,似乎都与ADDREV挑战的要求不符。首先,请确保您的代码为示例输入提供了正确的答案,即使有时示例输入不包括特殊情况,在这种情况下,您必须更仔细地研究问题描述。
#include<stdio.h>
#include<math.h>
int reverse(long long int n);
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
long long int m,n;
scanf("%lld %lld",&m,&n);
m = reverse(m) + reverse(n);
n = reverse(m);
printf("%lld\n",n);
}
return 0;
}
int reverse(long long int n)
{
long long int i=0,y=0,x=n;
while(x)
{
y++;
x = x/10;
}
while(y)
{
i = i + (n%10)*pow(10,y-1);
n = n/10;
y--;
}
return i;
}