当前位置: 首页 > 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.jsqmd.com/news/33291/

相关文章:

  • 成都恒利泰宽带锥形电感,一颗顶三颗
  • 微算法科技(NASDAQ MLGO)采用动态层次管理和位置聚类技术,修改pBFT算法以提高私有区块链网络运行效率
  • 2025年上海展览特装制作公司权威推荐榜单:标摊设计/标摊装修/展厅设计及施工源头公司家精选
  • 2025年PE-RT管材管件批发厂家权威推荐榜单:ppr电熔管件/PERT电熔管件/PERT2型管件源头厂家精选
  • 2025年透明吹塑HDPE防撞桶改性再生颗粒生产厂家权威推荐:环保连卷袋吹膜级透明HDPE颗粒/挤塑透明HDPE再生颗粒/透明吹塑HDPE水箱改性再生颗粒源头生产商精选
  • 护航“苏超”票务稳健运行!这朵云,靠谱!
  • doris命令show proc /current_queries;
  • 2025 国内靠谱的代理 IP 哪家好选择指南​
  • 2025年石膏基自流平生产商权威推荐:水泥自流平砂浆/石膏自流平砂浆/地面找平自流平源头厂家精选
  • 深入解析:webSocket快速入门
  • 2025年青岛城阳注册个体户服务权威推荐:青岛城阳公司变更服务/青岛城阳变更营业执照机构/青岛城阳公司减资服务机构精选
  • 11.6 考试总结
  • Redis的Hash解析 - 实践
  • 软件工程实践团队项目第一次作业
  • 水仙数练习循坏
  • 2025年紫檀手串性价比排名榜,紫檀手串哪家好
  • 使用 NIFI监控数据库表
  • 利用Libevent在CentOS 7上打造异步网络应用
  • 20251105周三日记
  • 完整教程:基于 PyQt5 实现刀具类型选择界面的设计与交互逻辑
  • JS 日期格式化显示
  • 2025年广东菲律宾家具集运服务权威推荐:广东家具拼柜菲律宾公司/广东家具集装箱菲律宾平台/广东食品海运菲律宾渠道精选
  • 告别文件混乱!Adobe Bridge 2026 全媒体可视化管理,让设计流程更顺畅
  • build插件
  • 2025年山东地区信誉好的UG编程培训企业推荐:UG编程培训品牌公司全解析
  • kernel pwn入门 强网杯2018 - core
  • 2025 年 11 月河南制砂机,郑州制砂机,鹅卵石制砂机厂家最新推荐,聚焦资质、案例、售后的五家家机构深度解读!
  • 2025中国氨基酸表面活性剂企业排行榜:长沙普济生物科技靠不靠谱?
  • leetcode热题100-283:移动零
  • 第二十章:遍历万象,执行随心——Visitor的访问艺术