本文主要是介绍编程挑战赛之 二十进制数的加法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
上面是题目要求以及界面
题目并不难,一般多调试几遍都可以做出来
算是对我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 //提示:自动阅卷结束唯一标识,请勿删除或增加。
这篇关于编程挑战赛之 二十进制数的加法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!