下面这串代码我自己想的输入方式,都没有错呀,为什么在oj上总是说wrong answer. 请高手帮忙看看
#include <iostream>
#include <string>
using namespace std;
void myAdd(std::string numOne, std::string numTwo)
{
int flag = 0;
std::string sum;
int oneLen = numOne.size();
int twoLen = numTwo.size();
for(int i = 1; i <= (oneLen < twoLen ? oneLen : twoLen); i++)
{
if((flag + numOne.at(oneLen - i) + numTwo.at(twoLen - i) - *0*) > *9*)
{
sum.push_back(flag + numOne.at(oneLen - i) + numTwo.at(twoLen - i) - *0* - 10);
flag = 1;
}
else
{
sum.push_back(flag + numOne.at(oneLen - i) + numTwo.at(twoLen - i) - *0*);
flag = 0;
}
}
//cout<<"my lady gaga->"<<sum<<"flag"<<flag<<endl;
if(oneLen <= twoLen)
{
for(int i = oneLen; i < twoLen; i++)
{
if((flag + numTwo.at(twoLen - i)) > *9*)
{
sum.push_back(flag + numTwo.at(twoLen - i) - 10);
flag = 1;
//cout<<" 111 "<<sum<<"flag"<<flag<<endl;
}
else
{
sum.push_back(flag + numTwo.at(twoLen - i));
flag = 0;
//cout<<" 2222 "<<sum<<"flag"<<flag<<endl;
}
}
}
else
{
for(int i = twoLen; i < oneLen; i++)
{
if((flag + numOne.at(oneLen - i)) > *9*)
{
sum.push_back(flag + numOne.at(oneLen - i) - 10);
flag = 1;
}
else
{
sum.push_back(flag + numOne.at(oneLen - i));
flag = 0;
}
}
}
if(flag != 0)
sum.push_back(flag + *0*);
cout<<numOne<<" + "<<numTwo<<" = ";
for(int i=sum.size()-1;i>=0;i--)
cout<<sum[i];
}
int main()
{
int num = 0;
cin>>num;
for(int i = 0; i < num; i++)
{
std::string OneNum;
std::string TwoNum;
cin>>OneNum>>TwoNum;
cout<<"Case "<<i+1<<":"<<endl;
myAdd(OneNum, TwoNum);
if(i < num - 1)
cout<<endl;
cout<<endl;
}
// system("pause");
return 0;
}
#include <iostream>
#include <string>
using namespace std;
void myAdd(std::string numOne, std::string numTwo)
{
int flag = 0;
std::string sum;
int oneLen = numOne.size();
int twoLen = numTwo.size();
for(int i = 1; i <= (oneLen < twoLen ? oneLen : twoLen); i++)
{
if((flag + numOne.at(oneLen - i) + numTwo.at(twoLen - i) - *0*) > *9*)
{
sum.push_back(flag + numOne.at(oneLen - i) + numTwo.at(twoLen - i) - *0* - 10);
flag = 1;
}
else
{
sum.push_back(flag + numOne.at(oneLen - i) + numTwo.at(twoLen - i) - *0*);
flag = 0;
}
}
//cout<<"my lady gaga->"<<sum<<"flag"<<flag<<endl;
if(oneLen <= twoLen)
{
for(int i = oneLen; i < twoLen; i++)
{
if((flag + numTwo.at(twoLen - i)) > *9*)
{
sum.push_back(flag + numTwo.at(twoLen - i) - 10);
flag = 1;
//cout<<" 111 "<<sum<<"flag"<<flag<<endl;
}
else
{
sum.push_back(flag + numTwo.at(twoLen - i));
flag = 0;
//cout<<" 2222 "<<sum<<"flag"<<flag<<endl;
}
}
}
else
{
for(int i = twoLen; i < oneLen; i++)
{
if((flag + numOne.at(oneLen - i)) > *9*)
{
sum.push_back(flag + numOne.at(oneLen - i) - 10);
flag = 1;
}
else
{
sum.push_back(flag + numOne.at(oneLen - i));
flag = 0;
}
}
}
if(flag != 0)
sum.push_back(flag + *0*);
cout<<numOne<<" + "<<numTwo<<" = ";
for(int i=sum.size()-1;i>=0;i--)
cout<<sum[i];
}
int main()
{
int num = 0;
cin>>num;
for(int i = 0; i < num; i++)
{
std::string OneNum;
std::string TwoNum;
cin>>OneNum>>TwoNum;
cout<<"Case "<<i+1<<":"<<endl;
myAdd(OneNum, TwoNum);
if(i < num - 1)
cout<<endl;
cout<<endl;
}
// system("pause");
return 0;
}