题目描述
定义一个四进制的类,重定义“+”号实现四进制数的累加。
输入
第一行输入所需要的四进制数的个数
第二行开始,依次输入四进制数 输出 所有输入四进制数累加的和样例输入
3
13
2
21样例输出
102
#include<bits/stdc++.h>
using namespace std;
class Four_way_addition{
private:
int num;
public:
Four_way_addition(int b=0){
num=b;
}
void Set(int b){
num=b;
}
Four_way_addition operator+(Four_way_addition &s){
int sum,a,n=0,sum_=0;
sum=num+s.num;
a=sum;
while(a){
a=a/10;
n++;
}
for(int i=0;i<n+1;i++){
if(sum%10>=4){
sum=(sum/10+1)*10+sum%10-4;
}
sum_+=sum%10*pow(10,i);
sum/=10;
}
Four_way_addition temp(sum_);
return temp;
}
void show(){
cout<<num<<endl;
}
};
int main(){
int n,a;
cin>>n;
Four_way_addition *q;
Four_way_addition q1;
q=new Four_way_addition[n];
for(int i=0;i<n;i++){
cin>>a;
q[i].Set(a);
}
for(int i=0;i<n;i++){
q1=q1+q[i];
}
q1.show();
}