当前位置: 首页 > news >正文

高精度板子

从网上当的

const int maxn = 50000;  struct bign{  int d[maxn], len;  void clean() { while(len > 1 && !d[len-1]) len--; }  bign()          { memset(d, 0, sizeof(d)); len = 1; }  bign(int num)   { *this = num; }   bign(char* num) { *this = num; }  bign operator = (const char* num){  memset(d, 0, sizeof(d)); len = strlen(num);  for(int i = 0; i < len; i++) d[i] = num[len-1-i] - '0';  clean();  return *this;  }  bign operator = (int num){  char s[20]; sprintf(s, "%d", num);  *this = s;  return *this;  }  bign operator + (const bign& b){  bign c = *this; int i;  for (i = 0; i < b.len; i++){  c.d[i] += b.d[i];  if (c.d[i] > 9) c.d[i]%=10, c.d[i+1]++;  }  while (c.d[i] > 9) c.d[i++]%=10, c.d[i]++;  c.len = max(len, b.len);  if (c.d[i] && c.len <= i) c.len = i+1;  return c;  }  bign operator - (const bign& b){  bign c = *this; int i;  for (i = 0; i < b.len; i++){  c.d[i] -= b.d[i];  if (c.d[i] < 0) c.d[i]+=10, c.d[i+1]--;  }  while (c.d[i] < 0) c.d[i++]+=10, c.d[i]--;  c.clean();  return c;  }  bign operator * (const bign& b)const{  int i, j; bign c; c.len = len + b.len;   for(j = 0; j < b.len; j++) for(i = 0; i < len; i++)   c.d[i+j] += d[i] * b.d[j];  for(i = 0; i < c.len-1; i++)  c.d[i+1] += c.d[i]/10, c.d[i] %= 10;  c.clean();  return c;  }  bign operator / (const bign& b){  int i, j;  bign c = *this, a = 0;  for (i = len - 1; i >= 0; i--)  {  a = a*10 + d[i];  for (j = 0; j < 10; j++) if (a < b*(j+1)) break;  c.d[i] = j;  a = a - b*j;  }  c.clean();  return c;  }  bign operator % (const bign& b){  int i, j;  bign a = 0;  for (i = len - 1; i >= 0; i--)  {  a = a*10 + d[i];  for (j = 0; j < 10; j++) if (a < b*(j+1)) break;  a = a - b*j;  }  return a;  }  bign operator += (const bign& b){  *this = *this + b;  return *this;  }  bool operator <(const bign& b) const{  if(len != b.len) return len < b.len;  for(int i = len-1; i >= 0; i--)  if(d[i] != b.d[i]) return d[i] < b.d[i];  return false;  }  bool operator >(const bign& b) const{return b < *this;}  bool operator<=(const bign& b) const{return !(b < *this);}  bool operator>=(const bign& b) const{return !(*this < b);}  bool operator!=(const bign& b) const{return b < *this || *this < b;}  bool operator==(const bign& b) const{return !(b < *this) && !(b > *this);}  string str() const{  char s[maxn]={};  for(int i = 0; i < len; i++) s[len-1-i] = d[i]+'0';  return s;  }  
};  istream& operator >> (istream& in, bign& x)  
{  string s;  in >> s;  x = s.c_str();  return in;  
}  ostream& operator << (ostream& out, const bign& x)  
{  out << x.str();  return out;  
}      
http://www.gsyq.cn/news/41932.html

相关文章:

  • 2025年上海展览特装制作公司权威推荐榜单:标摊设计/标摊装修/展厅设计及施工源头公司家精选
  • doris命令show proc /current_queries;
  • 护航“苏超”票务稳健运行!这朵云,靠谱!
  • 2025年青岛城阳注册个体户服务权威推荐:青岛城阳公司变更服务/青岛城阳变更营业执照机构/青岛城阳公司减资服务机构精选
  • 使用 NIFI监控数据库表
  • 利用Libevent在CentOS 7上打造异步网络应用
  • 2025年广东菲律宾家具集运服务权威推荐:广东家具拼柜菲律宾公司/广东家具集装箱菲律宾平台/广东食品海运菲律宾渠道精选
  • 告别文件混乱!Adobe Bridge 2026 全媒体可视化管理,让设计流程更顺畅
  • kernel pwn入门 强网杯2018 - core
  • 2025 年 11 月河南制砂机,郑州制砂机,鹅卵石制砂机厂家最新推荐,聚焦资质、案例、售后的五家家机构深度解读!
  • 2025东北拉弯加工厂家推荐白皮书,赢鑫拉弯加工厂家介绍
  • 2025 年蒸发器源头厂家最新推荐排行榜:聚焦优质企业,助力工业废水高效处理设备选购热泵刮板蒸发器/多效蒸发器/蒸汽刮板蒸发器公司推荐
  • 097_尚硅谷_经典案例打印字塔
  • 2025年粪便干湿分离机源头厂家权威推荐榜单:牛粪干湿分离机厂家/鸡粪干湿分离机/猪粪便干湿分离机源头厂家精选
  • CentOS7服务器部署GitLab
  • CentOS7.9升级gcc
  • raft 读请求源码走读
  • 2025年工业冷水机品牌供应商/加工厂/批量定制新推荐排行榜白皮书
  • 详细介绍:【MongoDB的RLE压缩数据存储】
  • 模拟赛日志
  • 2025年工作服定制哪家工艺精湛?专业工作服定制生产厂推荐
  • 2025年安全检测检验公司排行榜:十大权威机构深度解析
  • 算法社Python基础入门面试题库(新手版含答案) - 指南
  • 深入解析:一键把本地项目推到 GitHub:通用脚本 + 小白友好指南
  • Java的多态和重载
  • 2025 年分离机源头厂家最新推荐排行榜:聚焦国内优质品牌,助力企业精准选型碟片式分离机/离心分离机/全自动分离机公司推荐
  • 维修厂家推荐排行榜单2025:权威评测
  • 2025年色谱仪品牌新推荐排行榜白皮书,赛智液相色谱仪怎么样
  • GESP202309 五级 巧夺大奖题解
  • 2025年肯德基门闭门器优质厂家权威推荐榜单:钢制肯德基门/仿铜肯德基门/肯德基门型材源头厂家精选