这类题目几乎不需要数据结构,算法基础,主要通过简单的逻辑流程和判断实现。
题目描述如下:
题目大意:
题目理解起来很容易,相当于是一个三位的整数的相加,唯一不同的是,第一位整数是29进制,第二位整数是17进制。
大致思路:
可以用两个长度为3的整形数组,接收输入的A和B的各位数字,从最低位开始相加,如果超过了进制,向前进位即可。
提交结果如下:
有一个测试用例未通过,放在第二轮刷题时解决。
提交代码如下:
#include<iostream>
using namespace std;
int main()
{
int a[3], b[3],ans[3],temp=0;
for (int i = 0; i < 3; i++)
{
cin >> a[i];
getchar();
}
for (int i = 0; i < 3; i++)
{
cin >> b[i];
getchar();
}
if (a[2] + b[2] >= 29)
{
temp = (a[2] + b[2]) / 29;
}
ans[2] = (a[2] + b[2]) % 29;
ans[1] = (a[1] + b[1] + temp) % 17;
if (a[1] + b[1]+temp >= 17)
{
temp = (a[1] + b[1]+temp) / 17;
}
ans[0] = (a[0] + b[0] + temp);
cout << ans[0] << '.' << ans[1] << '.' << ans[2] << endl;
}
本次提交后累计得分364,排名为17059。