QAQ高精度模板笔记√
#include <cmath>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm> using namespace std; const int Bit = ;
const int Max_N = ; struct BigNumber {
long long num[Max_N];
int len; BigNumber () {
len = ;
memset(num, , sizeof num);
} BigNumber (long long A) {
len = ;
while (A) {
num[++ len] = A % Bit;
A /= Bit;
}
} void Clear() {
len = ;
memset(num, , sizeof num);
} BigNumber operator = (const BigNumber &A) const {
BigNumber ret;
ret.len = A.len;
for (int i = ; i <= A.len; ++ i) {
ret.num[i] = A.num[i];
}
return ret;
} BigNumber operator + (const BigNumber &A) const {
BigNumber ret;
ret.len = max(A.len, len) + ;
for (int i = ; i <= len; ++ i) {
ret.num[i + ] += (A.num[i] + num[i]) / Bit;
ret.num[i] += (A.num[i] + num[i]) % Bit;
}
while (!ret.num[ret.len] && ret.len) -- ret.len;
return ret;
} BigNumber operator - (const BigNumber &A) const {
BigNumber ret = *this;
ret.len = max(len, A.len) + ;
for (int i = ; i <= A.len; ++ i) {
ret.num[i] -= A.num[i];
if (ret.num[i] < ) {
ret.num[i] += Bit;
ret.num[i + ] --;
}
}
while (!ret.num[ret.len] && ret.len) -- ret.len;
return ret;
} BigNumber operator * (const BigNumber &A) const {
BigNumber ret;
ret.len = len + A.len + ;
for (int i = ; i <= len; ++ i) {
for (int j = ; j <= A.len; ++ j) {
long long v = 1LL * num[i] * A.num[j] + ret.num[i + j - ];
ret.num[i + j] += v / Bit;
ret.num[i + j - ] += v % Bit;
}
}
while (!ret.num[ret.len] && ret.len) -- ret.len;
return ret;
} BigNumber operator / (const int &A) const {
BigNumber ret;
ret.len = len + ;
for (int i = ret.len; i > ; -- i) {
ret.num[i - ] = (ret.num[i] + num[i]) % A * Bit;
ret.num[i] = (ret.num[i] + num[i]) / A;
}
ret.num[] = ;
while (!ret.num[ret.len] && ret.len) -- ret.len;
return ret;
} void Read() {
Clear();
static char S[];
scanf("%s", S + );
int N = strlen(S + );
long long Pow = ;
for (int i = N; i; -- i) {
if (Pow == ) ++ len;
num[len] += (S[i] - '') * Pow;
Pow *= ;
if (Pow == Bit) Pow = ;
}
} void Write() {
printf("%lld", num[len]);
for (int i = len - ; i > ; -- i) {
printf("%09lld", num[i]);
}
}
} ; namespace WorkSpace {
void Main() {
BigNumber A;
A.Read();
long long B;
scanf("%lld", &B);
BigNumber(B).Write(); puts("");
(A * BigNumber(B)).Write();
return ;
}
} int main() {
WorkSpace :: Main();
return ;
}
by yjl
——QAQ%%%yjl
QAQ高精度模板笔记√的更多相关文章
- QAQ数论模板笔记√
#include <cstdio> using namespace std; long long gcd(long long a, long long b) { // (a, b) ret ...
- [Template]高精度模板
重新写一下高精度模板(不要问我为什么) 自认为代码风格比较漂亮(雾 如果有更好的写法欢迎赐教 封装结构体big B是压位用的进制,W是每位长度 size表示长度,d[]就是保存的数字,倒着保存,从1开 ...
- C++高精度模板
原文地址:http://blog.csdn.net/wall_f/article/details/8373395 原文只附代码,没有解析,本文增加了一些对代码的解释. 请注意:本模板不涉及实数运算与负 ...
- [note]高精度模板
高精度模板 先定义一个struct struct gj{ int l,s[N]; bool fh; void Print(){ if(fh)putchar('-'); for(int i=l;i> ...
- 高精度模板 支持各种运算 c++
绪言 自从有了高精度模板,妈妈再也不用怕我不会打高精度了! 代码 代码长度与日俱增啊~~~ #include<iostream> #include<cstring> #incl ...
- 高精度模板 Luogu P1932 A+B & A-B & A*B & A/B Problem
P1932 A+B & A-B & A*B & A/B Problem 题目背景 这个题目很新颖吧!!! 题目描述 求A.B的和差积商余! 输入输出格式 输入格式: 两个数两行 ...
- c++模板笔记
使用vc2015进行C++ 模板的学习实验和笔记 用简单示例学习了解STL template大部头理论书 讲解各种规则和各种规则例外的解决办法 集中精力在20%的规则中的阴暗角落而不是80%实践中要注 ...
- Java 大数、高精度模板
介绍: java中用于操作大数的类主要有两个,一个是BigInteger,代表大整数类用于对大整数进行操作,另一个是BigDecimal,代表高精度类,用于对比较大或精度比较高的浮点型数据进行操作.因 ...
- JAVA高精度模板
刚开始还坚持用C++写高精来着,后来发现JAVA写高精方便太多了,所以也来学习一下JAVA高精度的模板. 参考:https://www.cnblogs.com/imzscilovecode/p/883 ...
随机推荐
- Android Studio添加jar包
1.先把jar包复制到项目的lib下,
- jexus 配置 学习
http://www.linuxdot.net/ 1.禁止或允许某IP或IP段访问网站 A.只允许某些IP地址访问网站(白名单功能) 默认情况下,允许所有IP地址访问.如果手工设置IP地址白名单, 那 ...
- PHP实现根据浏览器跳转不同语言页面代码
以下是对使用PHP实现根据浏览器跳转不同语言页面的代码进行了介绍,需要的朋友可以过来参考下 代码: <?php /** * 根据不同浏览器跳转不同页面 * 来源:www.jbxue.com * ...
- 动画气泡指示当前滑动值--第三方开源--DiscreteSeekbar
DiscreteSeekbar在github上的项目主页是:https://github.com/AnderWeb/discreteSeekBar DiscreteSeekbar可以自定制的属性很多, ...
- C#项目连接数据库的配置
一:C# 连接SQL数据库 1.用SqlServer数据库,windows身份验证模式<add name="TestSqlSqever" providerName=&q ...
- myeclipse配置下tomcat debug启动很无比慢
myeclipse配置下tomcat debug启动很无比慢,而run启动很快今天照常使用MyEclipse 6.5 Blue Edition进行开发,但是却遇到一个怪问题.在MyEclipse环境下 ...
- ios7.0结合storyborad实现页面跳转的总结
折腾了一整天,本文总结一下ios7.0页面跳转有关的内容 storyboard的潜规则 我接触ios很晚,环境已经是xcode5+ios7,所以对以前的IOS开发模式并不了解.在网上查阅了很多资料,发 ...
- 关于IOS中的delegate必须知道的事情
当你开始写iOS程式不久,应该开始面对到很多的delegate, 不管是用别人的library或是自己写library,可能都逃不了delegate. 为了怕有些人不知道什么是delegate,在这边 ...
- How do disable paging by swiping with finger in ViewPager but still be able to swipe programmatically?
The more general extension of ViewPager would bet to create a "SetPagingEnabled" method so ...
- beego 0.9.0 中智能路由AutoRouter的使用方法及源码解读
了解beego的开发者肯定知道,beego的路由设计来源于sinatra,原来是不支持自动路由的,每一个路由都要自己配置的,如: type MainController struct { beego. ...