很史的一道題,沒有ac的話建議混多半分直接跳。
讀入最好使用getline,再用substr分割字串。
// 15'00"
#include <iostream>
#include <string>
using namespace std;
int add(string a,string b)
{
int sum1 = 0, sum2 = 0;
for(int i = 0; i < a.size(); ++ i)
{
sum1 *= 10;
sum1 += a[i] - '0';
}
for(int i = 0; i < b.size(); ++ i)
{
sum2 *= 10;
sum2 += b[i] - '0';
}
return sum1 + sum2;
}
bool func(string& s)
{
for(auto c : s)
if(c < '0' || c > '9') return false;
int sum = 0;
for(int i = 0; i < s.size(); ++ i)
{
sum *= 10;
sum += s[i] - '0';
}
if(sum > 1000 || sum == 0) return false;
return true;
}
int main()
{
string s, a, b;
getline(cin,s);
for(int i = 0; i < s.size(); ++ i)
if(s[i] == ' ')
{
a = s.substr(0,i);
b = s.substr(i+1);
break;
}
if(func(a)) cout << a;
else cout << "?";
cout << " + ";
if(func(b)) cout << b;
else cout << "?";
cout << " = ";
if(func(a) && func(b)) cout << add(a, b);
else cout << "?";
return 0;
}