当前位置: 首页>>代码示例>>C++>>正文


C++ Bigint::resize方法代码示例

本文整理汇总了C++中Bigint::resize方法的典型用法代码示例。如果您正苦于以下问题:C++ Bigint::resize方法的具体用法?C++ Bigint::resize怎么用?C++ Bigint::resize使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Bigint的用法示例。


在下文中一共展示了Bigint::resize方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1:

 Bigint operator * (const Bigint &b) {
   Bigint r;
   r.resize(len() + b.len() + 1);
   r.s = s * b.s;
   for (int i=0; i<len(); i++) {
     for (int j=0; j<b.len(); j++) {
       r.v[i+j] += v[i] * b.v[j];
       if(r.v[i+j] >= BIGMOD) {
         r.v[i+j+1] += r.v[i+j] / BIGMOD;
         r.v[i+j] %= BIGMOD;
       }
     }
   }
   r.n();
   return r;
 }
开发者ID:tzupengwang,项目名称:PECaveros,代码行数:16,代码来源:m.cpp

示例2:

 Bigint operator - (const Bigint &b) const {
   if (s == -1) return -(-(*this)-(-b));
   if (b.s == -1) return (*this)+(-b);
   if ((*this) < b) return -(b-(*this));
   Bigint r;
   r.resize(len());
   for (int i=0; i<len(); i++) {
     r.v[i] += v[i];
     if (i < b.len()) r.v[i] -= b.v[i];
     if (r.v[i] < 0) {
       r.v[i] += BIGMOD;
       r.v[i+1]--;
     }
   }
   r.n();
   return r;
 }
开发者ID:CoderINusE,项目名称:bcw_codebook,代码行数:17,代码来源:pE.cpp

示例3: max

 Bigint operator + (const Bigint &b) const {
   if (s == -1) return -(-(*this)+(-b));
   if (b.s == -1) return (*this)-(-b);
   Bigint r;
   int nl = max(len(), b.len());
   r.resize(nl + 1);
   for (int i=0; i<nl; i++) {
     if (i < len()) r.v[i] += v[i];
     if (i < b.len()) r.v[i] += b.v[i];
     if(r.v[i] >= BIGMOD) {
       r.v[i+1] += r.v[i] / BIGMOD;
       r.v[i] %= BIGMOD;
     }
   }
   r.n();
   return r;
 }
开发者ID:CoderINusE,项目名称:bcw_codebook,代码行数:17,代码来源:pE.cpp

示例4: len

 Bigint operator / (const Bigint &b) {
   Bigint r;
   r.resize(max(1, len()-b.len()+1));
   int oriS = s;
   Bigint b2 = b; // b2 = abs(b)
   s = b2.s = r.s = 1;
   for (int i=r.len()-1; i>=0; i--) {
     int d=0, u=BIGMOD-1;
     while(d<u) {
       int m = (d+u+1)>>1;
       r.v[i] = m;
       if((r*b2) > (*this)) u = m-1;
       else d = m;
     }
     r.v[i] = d;
   }
   s = oriS;
   r.s = s * b.s;
   r.n();
   return r;
 }
开发者ID:CoderINusE,项目名称:bcw_codebook,代码行数:21,代码来源:pE.cpp


注:本文中的Bigint::resize方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。