俄罗斯乘法
来源:互联网 发布:印度贫民窟 知乎 编辑:程序博客网 时间:2024/06/10 03:21
俄罗斯乘法:
俄罗斯乘法是用于计算两个数相乘,一般多用于取模的情况,可以将其转化为快速幂的形式。
公式:
举个例子:计算 35*72
过程
35 72
17 144
8 288
4 576
2 1152
1 2304
从上到下,对每一行,若左边的数字若为奇数,则将右边的数字取出,累加。
72+144+2304=2520
累加的结果2520即为乘积。
这样可以结合快速幂来求(取模的情况):
int Pow(int n1 ,int n2 ,int p){ int ans = 0 ; while(n1){ if(n1&1) ans = (ans + n2%p)%p ; n1 = n1>>1 ; n2 = (n2<<1)%p ; } return ans ;}
0 0
- 俄罗斯乘法
- 俄罗斯乘法
- hdu5666 Segment (俄罗斯乘法)
- 俄罗斯农夫乘法(减治法)
- 【HDU 5666 Segment】+ 俄罗斯乘法
- 俄罗斯
- 算法_俄罗斯农夫法的乘法算法
- hdoj 5666 Segment (大数取模)(俄罗斯乘法)
- HDU 5666 Segment —— 快速加 俄罗斯农民乘法
- 火拼俄罗斯
- 俄罗斯玩偶
- 乘法
- 乘法
- 乘法
- 乘法
- 乘法
- 乘法
- 乘法
- 第五周项目三(1)-时间类
- CSDN博客添加自定义栏目展示新浪微博秀
- 【leetcode】153. Find Minimum in Rotated Sorted Array
- 第8周项目3—指向学生类的指针
- SSM框架开发时出现HTTP 400错误
- 俄罗斯乘法
- 《java并发编程实战》读书笔记二 对象的发布与逸出
- 中序表达式变成后序表达式 JAVA实现版本
- OkHttp深入学习(一)——初探
- Unity3d Application设备读写目录
- 算法——Manacher算法(求最长回文子串)
- linux基础学习之 gSOAP(1)
- 数据结构与算法
- 复制文件