题目描述
定义一个四进制的类,重定义“+”号实现四进制数的累加。输入
第一行输入所需要的四进制数的个数
第二行开始,依次输入四进制数
输出
所有输入四进制数累加的和样例输入
3
13
2
21
样例输出
102
#include<iostream>
#include<cmath>
using namespace std;
class quaternary{
private:
int num;
public:
quaternary(int b=0){
num=b;
}
void Set(int b){
num=b;
}
quaternary operator+(quaternary &s){
int sum,a,n=0,_sum=0;
sum=num+s.num;
a=sum;
while(a){ //计算a是几位数
a=a/10;
n++;
}
for(int i=0;i<n+1;i++){
if(sum%10>=4) //如果最后一位数>=4,则需要进位
sum=(sum/10+1)*10+sum%10-4;
_sum+=sum%10*pow(10,i); //从最后一位开始相加
sum/=10; //去掉最后一位
}
quaternary temp(_sum);
return temp;
}
void print(){
cout<<num<<endl;
}
};
int main(){
int n,a;
cin>>n;
quaternary *q;
quaternary q1;
q=new quaternary[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.print();
}