码迷,mamicode.com
首页 > 其他好文 > 详细

俄罗斯乘法

时间:2015-04-08 00:44:18      阅读:299      评论:0      收藏:0      [点我收藏+]

标签:

俄罗斯乘法是一种计算两数相乘的算法。
举例如下:
计算 35*72
过程
35        72
17        144
8          288
4          576
2          1152
1          2304
从上到下,对每一行,若左边的数字若为奇数,则将右边的数字取出,累加。
72+144+2304=2520
累加的结果2520即为乘积。
因为该算法不需要已知九九乘法表。
所以在计算机中有应用。
具体参考:《算法基础
原理是将左边的数除以2 右边的数乘以2,左边数除以2以后有余数(余数为1),则将右边的数(1*右边的数)累加到结果中。
                                                                              ------摘自百度百科
技术分享
 1 #include<iostream>
 2 using namespace std;
 3 int Russia(int m, int n)
 4 {
 5     int result = 0;
 6     while (m != 1)
 7     {
 8         if (m % 2 != 0)
 9             result += n;
10         m = m / 2;
11         n = n * 2;
12     }
13     result += n;
14     return result;
15 }
16 int main()
17 {
18     int m, n;
19     cin >> m >> n;
20     cout << Russia(m, n) << endl;
21 
22 }
View Code

 

俄罗斯乘法

标签:

原文地址:http://www.cnblogs.com/longzu/p/4400977.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!