2019-04-20高精,快速幂

明天校赛,今天整理一下简单的模板

/*高精加,累加x到sum*/
int sum[1000], top = 1;
void get_sum1(ll x){
    int i, t = 0;//t记进位 
    for(i = 0; x != 0 || t != 0; i++){
        sum[i] += x % 10 + t;
        t = sum[i] / 10;
        sum[i] %= 10;
        x /= 10;
    }
    top = max(top, i);//最高位的位置,开区间 
}
void print(){//个位在sum[0] 
    for(int i = top - 1; i >= 0; i--) cout << sum[i];
    cout << endl;
}

/*高精乘,c = a * b,忽略正负号*/
int a[1000], b[1000], c[1000];
void mul(int *a, int *b){ 
    for(int i = 1; i <= lena; i++){
        int t = 0;//t记进位 
        for(int j = 1; j <= lenb; j++){
            c[i + j - 1] = c[i + j - 1] + t + a[i] * b[j];
            t = c[i + j - 1] / 10;
            c[i + j - 1] %= 10;
        }
        c[i + lenb] = t;
    } 
} 
void print(){//个位在c[1] 
    for(int i = lenc; i >= 1; i--) cout << c[i];
    cout << endl; 
}

/*快速幂, a的b次方*/ 
ll poww(int a, int b) {
    ll ans = 1, base = a;
    while (b != 0) {
        if (b & 1 != 0) ans *= base;
        base *= base;
        b >>= 1;
        //ans %= Mod, base %= Mod;
    }
    return ans;
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 纵跃的鸟谱写了音符 田园在山水间填词 家的路从舅舅的门前过 所有回忆跟阳光有关 今天,萍妹妹即将成家 打包好诗歌带...
    良舍公社阅读 1,153评论 17 50
  • 简介:青春、唯美、异域风情、感伤 关注专题/点击文章底部左下角文集 《哭泣的月亮》(每日更新中) 就可以及时追文啦...
    巴山雨阅读 825评论 7 5
  • 2018年12月20日 星期四 晴 看了一则新闻,说是早上零下三度,洒水车就开始兢兢业业的工作了。结果洒水...
    桥上风景阅读 387评论 0 14