题目:P1604 B进制星球

本人提交记录:R6292872

作为一个极其无聊的人,我没事干地写了operator。。。

思路很简单:

读入b

读入b进制的x,y

ans = x + y

输出ans

用了operator,貌似难解释一点。

但我认为,以大家那都高于我的智商,不会不理解高精加法。

我只需要介绍一下一些变量和函数%%%

全局变量 b : b进制
struct类型 bint : b进制高精数
bint类型 x,y,ans : x,y用于输入,ans存储答案值

还要介绍一下bint类型的变量&方法orz:

beta 存储高精数
len 存储高精数长度 bint() 初始化
mem() 初始化,形参为初始化后每位的值
operator + () 加法operator定义
operator >> () 输入operator定义
operator << () 输出operator定义

最后上代码:

#include <string.h>
#include <iostream>
#define MAX 2001
using namespace std; int b; struct bint {
int beta[MAX];
int len;
bint()
{
mem(0);
len = 0;
}
void mem(int cmd)
{
memset(beta, cmd, sizeof(beta));
}
bint operator + (const bint &other) const
{
if (len == 0) return other;
if (other.len == 0) return *this;
bint ans;
int maxlen = len > other.len ? len : other.len;
for (int i = 0; i < maxlen; i++) {
ans.beta[i] += beta[i] + other.beta[i];
ans.beta[i + 1] += ans.beta[i] / b;
ans.beta[i] = ans.beta[i] % b;
}
if (ans.beta[maxlen] != 0) ans.len = maxlen + 1;
else ans.len = maxlen;
return ans;
}
friend istream &operator >> (istream &in, bint &other)
{
string str;
in >> str;
for (int i = 0; i < str.size(); i++) {
if (str[i] > '9') other.beta[str.size() - i - 1] = str[i] - 55;
else other.beta[str.size() - i - 1] = str[i] - 48;
}
other.len = str.size();
}
friend ostream &operator << (ostream &out, bint &other)
{
for (int i = other.len - 1; i >= 0; i--) {
if (other.beta[i] > 9) out << (char)(other.beta[i] + 55);
else out << (char)(other.beta[i] + 48);
}
}
}; int main()
{
bint x, y, ans;
cin >> b;
cin >> x;
cin >> y;
ans = x + y;
cout << ans;
return 0;
}

慢慢看。。。

洛谷 题解 P1604 【B进制星球】的更多相关文章

  1. 洛谷——P1604 B进制星球

    P1604 B进制星球 题目背景 进制题目,而且还是个计算器~~ 题目描述 话说有一天,小Z乘坐宇宙飞船,飞到一个美丽的星球.因为历史的原因,科技在这个美丽的星球上并不很发达,星球上人们普遍采用B(2 ...

  2. 洛谷 P1604 B进制星球

    P1604 B进制星球 题目背景 进制题目,而且还是个计算器~~ 题目描述 话说有一天,小Z乘坐宇宙飞船,飞到一个美丽的星球.因为历史的原因,科技在这个美丽的星球上并不很发达,星球上人们普遍采用B(2 ...

  3. 洛谷P1066 2^k进制数(题解)(递推版)

    https://www.luogu.org/problemnew/show/P1066(题目传送) (题解)https://www.luogu.org/problemnew/solution/P106 ...

  4. 洛谷 P1066 2^k进制数

    P1066 2^k进制数 题目描述 设r是个2^k 进制数,并满足以下条件: (1)r至少是个2位的2^k 进制数. (2)作为2^k 进制数,除最后一位外,r的每一位严格小于它右边相邻的那一位. ( ...

  5. 洛谷P1066 2^k进制数

    P1066 2^k进制数 题目描述 设r是个2^k 进制数,并满足以下条件: (1)r至少是个2位的2^k 进制数. (2)作为2^k 进制数,除最后一位外,r的每一位严格小于它右边相邻的那一位. ( ...

  6. [NOIP2006] 提高组 洛谷P1066 2^k进制数

    题目描述 设r是个2^k 进制数,并满足以下条件: (1)r至少是个2位的2^k 进制数. (2)作为2^k 进制数,除最后一位外,r的每一位严格小于它右边相邻的那一位. (3)将r转换为2进制数q后 ...

  7. 洛谷P1582——倒水(进制,数学)

    https://www.luogu.org/problem/show?pid=1582 题目描述 一天,CC买了N个容量可以认为是无限大的瓶子,开始时每个瓶子里有1升水.接着~~CC发现瓶子实在太多了 ...

  8. 洛谷1066 2^k进制数

    原题链接 大力猜结论竟然猜对了.. 对于一对\(k,w\),我们可以把\(w\)位划分成\(k\)位一段的形式,每一段就是转换成十进制后的一位,这个从题面的解释中应该可以理解. 先不考虑可能多出(即剩 ...

  9. 洛谷P4135 Ynoi2016 掉进兔子洞 (带权bitset?/bitset优化莫队 模板) 题解

    题面. 看到这道题,我第一反应就是莫队. 我甚至也猜出了把所有询问的三个区间压到一起处理然后分别计算对应询问答案. 但是,这么复杂的贡献用什么东西存?难道要开一个数组 query_appear_tim ...

随机推荐

  1. Spring源码解析之@Configuration

    @Configuration简介 用于标识一个类为配置类,与xml配置效果类似 用法简介 public class TestApplication { public static void main( ...

  2. 部署django

    添加uwagi配置文件 在你项目的根目录中创建mysite.xml(名字无所谓),或者创建mysite.ini,输入以下内容: <uwsgi> <socket>127.0.0. ...

  3. PHP Laravel 6.2 中用于用户登录的新密码确认流程

    Laravel 发布了 v6.2 版本,它添加了一个新的密码确认功能,该功能使你可以要求已登录的用户重新输入密码,然后才能访问路由. 在你执行敏感操作的时候,这个功能就类似GitHub确认对话框.在 ...

  4. SQL Server 2014:在修改表的内容时,提示“此单元格已更改,尚未将更改提交到数据库”,怎么处理?

    那一行上的属性为“不允许为null”的所有字段都填上对应信息,按回车键或者点击下一行任意一个单元格便会自动将更改的信息提交到数据库.

  5. 爬虫多线程模板,xpath,etree

    class QuiShi: def __init__(self): self.temp_url = "http://www.lovehhy.net/Joke/Detail/QSBK/{0}& ...

  6. 逆向libbaiduprotect(二)

    首先要确保你所使用的gdb和gdbserver是配对的,最好(或必须)是sdk内相同platform(api level)下的gdb和gdbserver.否则你使用的gdb可能与运行测试机上的gdbs ...

  7. bind cname

    $TTL 1D @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS ...

  8. 关于虚拟机克隆之后IP重新设置

    由于要搭建一套环境,本来搭建好的后来搞崩了,因为之前的虚拟机没有克隆过以及创建快照,所以今天就重新创建一套环境创建虚拟机快照,以及要解决克隆之后的IP重新设置问题. 1.查看本机orcl IP:[ro ...

  9. 【Luogu P1168】【Luogu P1801&UVA 501】中位数&黑匣子(Black Box)——对顶堆相关

    Luogu P1168 Luogu P1801 UVA 501(洛谷Remote Judge) 前置知识:堆.优先队列STL的使用 对顶堆 是一种在线维护第\(k\)小的算法. 其实就是开两个堆,一个 ...

  10. nginx实现前后台分离部署

    2.1         前后台分离部署 (一)       组网图 (二)       简要说明: 如标题所示,至于为什么要前后台分离部署,个人理解的原因有三 (一)   便于部署 前台代码由ngin ...