首页 > 其他分享 >四进制加法(运算符重载)

四进制加法(运算符重载)

时间:2024-05-27 22:02:21浏览次数:22  
标签:string int value 运算符 carry result Quaternary 加法 重载

题目描述

定义一个四进制的类,重定义“+”号实现四进制数的累加。

输入

第一行输入所需要的四进制数的个数

第二行开始,依次输入四进制数

输出

所有输入四进制数累加的和

//

输入示例:

3
13
2
21
输出示例:

102
AC代码:

#include <iostream>
#include <string>
using namespace std;

class Quaternary
{
private:
    string value;

public:
    Quaternary(string val) : value(val) {}

    Quaternary operator+(const Quaternary &other)
    {
        string result = "";
        int carry = 0;
        int len1 = value.length(), len2 = other.value.length();
        int maxlen = max(len1, len2);
        for (int i = 0; i < maxlen; i++)
        {
            int digit1 = (i < len1) ? value[len1 - 1 - i] - '0' : 0;
            int digit2 = (i < len2) ? other.value[len2 - 1 - i] - '0' : 0;
            int sum = digit1 + digit2 + carry;
            result = to_string(sum % 4) + result;
            carry = sum / 4;
        }
        if (carry > 0)
        {
            result = to_string(carry) + result;
        }
        return Quaternary(result);
    }

    friend ostream &operator<<(ostream &os, const Quaternary &q)
    {
        os << q.value;
        return os;
    }
};

int main()
{
    int n;
    cin >> n;
    string input;
    cin.ignore();
    cin >> input;
    Quaternary result(input);
    for (int i = 1; i < n; i++)
    {
        cin >> input;
        Quaternary num(input);
        result = result + num;
    }
    cout << result << endl;
    return 0;
}

标签:string,int,value,运算符,carry,result,Quaternary,加法,重载
From: https://blog.csdn.net/zgy11026/article/details/139249015

相关文章

  • 三元运算符生成器 UDF
     UDFsUserDefinedFunctions|ClickHouseDocshttps://clickhouse.com/docs/en/sql-reference/functions/udf defgen_sql_zone_if(range_list,field='cnt',group_val_flag='g'):"""[0,2)[2,3)[3,7)与if函数相同。C......
  • c++箭头运算符在类与结构体之间可以做的功能简介
    #include<iostream>//箭头运算符在类与结构体之间可以做的功能以及重载运算符。#include<string>classentity{public: intx;public: voidprint()const{std::cout<<"hello!"<<std::endl;}};classscopedPtr{private: entity*m_Obj;public: sc......
  • Java语言程序设计1 第二章:变量、数据类型、运算符、表达式
    一、变量1.概念:        计算机中的一块内存空间,存储数据的基本单元2.变量的组成部分:        数据类型、变量名、数据3.语法:        (1)先声明,再赋值:       ·数据类型变量名;//声明                变量......
  • Java涉及的运算符
    Java涉及的运算符有以下几种:算术运算符:用于进行基本的数学运算,包括加法(+)、减法(-)、乘法(*)、除法(/)、取余(%)等。赋值运算符:用于将一个值赋给变量,包括简单赋值(=)、加法赋值(+=)、减法赋值(-=)、乘法赋值(*=)、除法赋值(/=)、取余赋值(%=)等。关系运算符:用于比较两个值之间的关系,返回一个布......
  • 高精度加法
    #include<bits/stdc++.h>usingnamespacestd;vector<int>z(vector<int>v,vector<int>n){vector<int>s;intsum=0;for(intj=0;j<v.size();j++){ sum+=v[j]+n[j]; s.push_back(sum%10); sum=sum/10; } while(......
  • Lua中调用ref和out修饰参数的函数/重载函数
    [12]lua中调用ref和out修饰参数的函数数值publicintRefCompute(inta,refintb,refintc,intd){b+=a;c+=d;returnb+c;}publicintOutCompute(inta,outintb,outintc,intd){b=a+1;c=d+2;returnb+c;}......
  • python 基础习题3--数据类型和运算符
    1.  100/4+2*3 运行结果是 ()                    A、10B、81C、31D、50    E、31.02. Python 中的== 代表的是 (  )A、把左边的值赋值给右边;B、把右边的值赋值给左边 ;C、比较左右......
  • 位运算符在 Javascript 中的运用
    零、资料JavaScript中的位运算和权限设计javascript位运算技巧巧用JS位运算JavaScript位运算及其妙用聊聊JavaScript中的二进制数一、权限在权限设计时,每一个基础权限单元都是二进制数形式,有且只有一位值是1,其余全部是0,即权限码是 2^n 。所以,在这套设......
  • PHP函数 算术运算符
    <?phpheader('Content-Type:text/html;charset=utf-8');define('ROOT',$_SERVER['DOCUMENT_ROOT']);includeROOT.'/assets/php/head.php';//算术运算符/***+$a:标识;根据情况将$a转化为int或float。*-$a:取反;$a的负值。*$a+$b:加法;$a......
  • PHP函数 赋值运算符
    <?phpheader('Content-Type:text/html;charset=utf-8');define('ROOT',$_SERVER['DOCUMENT_ROOT']);includeROOT.'/assets/php/head.php';//赋值运算符/***例子等同于操作*$a+=$b等同于$a=$a+$b加法*$a-=$b等同于$a=$a-$......