龟速运算

当你急需一种算法来实现“加”这种运算,但因种种原因无法打出加号,也无法复制一个加号,那么我就强烈推荐:

龟速加!

int ret1, ret2; int add(int a, int b) { if(b == 0) return a; if(a == 0) return b; ret1 = a ^ b; ret2 = a & b; ret2 <<= 1; return add(ret1, ret2); }

屁用没有,还贼慢,是 O(log n) 的


当你急需一种算法来实现“大数带模乘”这种运算,但因种种原因无法打出乘号,也无法复制一个乘号,且乘后会爆 long long,那么我就强烈推荐:

龟速乘!

long long mul(long long a, long long b, long long p) { long long res = 0; while(b) { if(b & 1) res = (res + a) % p; a = (a + a) % p; b >>= 1; } return res; }

不如 int_128 和高精度


__EOF__

本文作者yuzihang
本文链接https://www.cnblogs.com/yuzihang/p/18712908.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   yuzihang  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示