题目描述
定义一个四进制的类,重定义“+”号实现四进制数的累加。
输入
第一行输入所需要的四进制数的个数
第二行开始,依次输入四进制数
输出
所有输入四进制数累加的和
输入样例:
3
13
2
21
输出样例:
102
#include<iostream>
#include<cmath>
using namespace std;
class SJZ
{
private:
int m_num;
public:
SJZ(int n = 0):m_num(n)
{
}
void setN(int n)
{
m_num = n;
}
void print()
{
cout << m_num << endl;
}
SJZ operator+(SJZ& s)
{
int sum = m_num, i = 0, k;
m_num += s.m_num;
sum += s.m_num;
while (sum != 0)
{
sum /= 10;
i++;//十进制是几位数
}
for (int j = 0; j < i; j++)
{
k = pow(10, j);
if ((m_num / k % 10) >= 4)
{
m_num += 6 * k;
}
}
SJZ s2(m_num);
return s2;
}
};
int main()
{
int t, n;
cin >> t;
SJZ* s = new SJZ[t];
SJZ s1;
for(int i = 0; i < t; i++)
{
cin >> n;
s[i].setN(n);
}
for (int i = 0; i < t; i++)
{
s1 = s1 + s[i];
}
s1.print();
}