[note]高精度模板
2024-08-29 01:04:18
高精度模板
先定义一个struct
struct gj{
int l,s[N];
bool fh;
void Print(){
if(fh)putchar('-');
for(int i=l;i>=1;i--)printf("%d",s[i]);
puts("");
}
}blank;
高精+高精
加之前判断一下符号
一负一正转成减法
gj operator +(gj x,gj y){
gj z=blank;z.l=max(x.l,y.l);
for(int i=1;i<=z.l;i++){
z.s[i]+=x.s[i]+y.s[i];
if(z.s[i]>9)z.s[i+1]++,z.s[i]-=10;
}
if(z.s[z.l+1])z.l++;
return z;
}
高精-高精
gj operator -(gj x,gj y){
gj z=blank;z.l=max(x.l,y.l);
for(int i=z.l;i>=1;i--){
if(x.s[i]==y.s[i])continue;
if(x.s[i]<y.s[i])swap(x,y),z.fh=1;
break;
}
for(int i=1;i<=z.l;i++){
z.s[i]+=x.s[i]-y.s[i];
if(z.s[i]<0)z.s[i]+=10,z.s[i+1]--;
}
while(!z.s[z.l]&&z.l>1)z.l--;
return z;
}
高精*高精
gj operator *(gj x,gj y){
gj z=blank;z.l=x.l+y.l;
for(int i=1;i<=x.l;i++){
int jw=0;
for(int j=1;j<=y.l;j++){
z.s[i+j-1]+=x.s[i]*y.s[j]+jw;
jw=z.s[i+j-1]/10;
z.s[i+j-1]%=10;
}
z.s[i+b.l]=jw;
}
while(z.l>1&&!z.s[z.l])z.l--;
return z;
}
最新文章
- 彻底理解session
- EXCEL countif函数多条件
- 烟大 Contest1024 - 《挑战编程》第一章:入门 Problem G: Check The Check(模拟国际象棋)
- Nginx Location匹配举例
- Android之点击切换图片
- JavaScript 之 Cookie
- 在Delphi中使用C++对象(转)
- cura-engine学习(3)
- 在程序加载过程中显示ProgressDialog 对话框
- 整理pandas操作
- Java学习笔记5---命令行下用javac,java编译运行含package语句的类
- Java框架之Spring MVC(二)
- Android Notification 版本适配方案
- ThinkPHP 数据库操作(七) : 视图查询、子查询、原生查询
- CentOS官网下载系统镜像
- Keil_uvision 基本使用教程
- Java Lombok 减少代码冗余 get set
- OC内存管理-黄金法则
- tomcat已启动,使用maven的deploy发布后,根据路径打开浏览器访问时报错HTTP Status 500 - Error instantiating servlet class
- zoj3696(泊松分布)
热门文章
- php 位运算符的实际应用(权限判断)
- spring拦截器不拦截方法名原因
- ionic2项目创建回顾 及 react-native 报错处理
- Maven 小技巧之 自动更新你的jar包
- 苹果版小黄车(ofo)app主页菜单效果
- zabbix监控第二块网卡是否连通
- Docker DevOps实战: 一分钟搭建Hexo博客
- mysql用merge合并表
- 项目开发中的一些注意事项以及技巧总结 基于Repository模式设计项目架构—你可以参考的项目架构设计 Asp.Net Core中使用RSA加密 EF Core中的多对多映射如何实现? asp.net core下的如何给网站做安全设置 获取服务端https证书 Js异常捕获
- wcf 入门示例