![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICdzFWRoRXdvN1LclHdpZXYyd2LcBzNvwVZ2x2bzNXak9CX90TQNNkRrFlQKBTSvwFbslmZvwFMwQzLcVmepNHdu9mZvwFVywUNMZTY18CX052bm9CX90zZOFTSU9keZRVT4FEVkZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39jM2AjNzcDNxEzMyEDM0EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
上面是題目要求以及界面
題目并不難,一般多調試幾遍都可以做出來
算是對我C++能力的入門級檢測吧
自己做的幾個測試案例都可以過
送出上去不行,可能是代碼格式不對
實在不了解calcute("Test","Test")和return"Test"是什麼意思
百度了代碼格式也沒有搜到
下午在認真找一下吧
比較惡心的事題目隻能送出一次。。。
貼上我的代碼:
#include <stdio.h>
#include <iostream>
#include <string>
#include <cctype>
#include <vector>
using namespace std;
class Test {
public:
static string calculate (string x,string y)
{
int i = x.size();
int j = y.size();
int k = (i>j?i:j)+1;
vector<int> res(k,0);
int flag = 0;
k=0,i--,j--;
while(i>=0 && j>=0){
if(isalpha(x[i]))
res[k] += x[i]-'a'+10;
else res[k] += x[i]-'0';
if(isalpha(y[j]))
res[k] += y[j]-'a'+10;
else res[k] += y[j]-'0';
if(res[k] > 19)
res[k+1]++,res[k] -= 20;
i--;
j--;
k++;
}
while(i>=0){
if(isalpha(x[i]))
res[k] += x[i]-'a'+10;
else res[k] += x[i]-'0';
if(res[k] > 19)
res[k]-=20,res[k+1]++;
k++;
i--;
}
while(j>=0){
if(isalpha(y[j]))
res[k++] += y[j--]-'a'+10;
else res[k++] += y[j--]-'0';
if(res[k] > 19)
res[k]-=20,res[k+1]++;
k++;
j--;
}
vector<int>::iterator it = res.end()-1;
if(*it != 0)
cout << *it;
for(vector<int>::iterator it=res.end()-2;
it>=res.begin(); it--)
if(*it > 9)
cout << char(*it-10+'a');
else cout << *it;
return "Test";
}
};
//start 提示:自動閱卷起始唯一辨別,請勿删除或增加。
int main()
{
string x, y;
while(cin >> x >> y)
calculate(x,y);
cout<<Test::calculate("Test","Test")<<endl;
}
//end //提示:自動閱卷結束唯一辨別,請勿删除或增加。