减治法 俄式乘法C语言
时间: 2023-11-23 13:54:31 浏览: 53
以下是减治法俄式乘法的C语言实现:
```c
#include <stdio.h>
int russianPeasant(int n, int m) {
int res = 0;
while (n > 0) {
if (n % 2 == 1) {
res += m;
}
n /= 2;
m *= 2;
}
return res;
}
int main() {
int n, m;
printf("请输入两个正整数n和m:");
scanf("%d %d", &n, &m);
printf("它们的乘积是:%d\n", russianPeasant(n, m));
return 0;
}
```
相关问题
应用俄式乘法来计算26*47
俄式乘法又称为竖式乘法,其基本思想是将两个数都写在竖式中,然后将第一个数不断除以2并将第二个数不断乘以2,直到第一个数变为1为止。此时将第二个数中除以2的余数对应的数相加即为结果。
以26*47为例,将两个数写在竖式中:
```
26
x 47
----
```
首先将26除以2得到13,将47乘以2得到94:
```
13
x 94
----
```
然后将13除以2得到6,将94乘以2得到188:
```
6
x 188
-----
```
继续将6除以2得到3,将188乘以2得到376:
```
3
x 376
-----
```
最后将3中除以2的余数对应的数相加,即3和1,得到结果为1222。
因此,26*47=1222。