python给出一个递归算法,只使用加法和减法计算两个正整数m和n的乘积
时间: 2023-05-16 08:07:05 浏览: 265
以下是一个使用递归算法、只使用加法和减法计算两个正整数m和n的乘积的Python代码:
```
def multiply(m, n):
if n == 1:
return m
else:
return m + multiply(m, n-1)
```
这个算法的基本思路是,将m加上自身n-1次,即可得到m*n的结果。每次递归时,将n减1,直到n等于1时返回m。
相关问题
递归函数求两个正整数m和n的最大公约数Python
好的,我可以为您提供一个递归函数来求解两个正整数m和n的最大公约数。请看下面的Python代码:
```python
def gcd(m, n):
if m % n == 0:
return n
else:
return gcd(n, m % n)
```
这个函数采用了递归的方式来求解最大公约数,当m能够被n整除时,n就是最大公约数;如果m不能整除n,则递归调用函数,并将n和m%n作为参数传入。
希望这个答案对您有所帮助。如您有更多问题,请继续提出。
使用辗转相除法和递归求两个正整数m和n的最大公约数
题目中给出了两个正整数 m 和 n,要求使用辗转相除法和递归求出它们的最大公约数和最小公倍数。
辗转相除法:
1. 假设 m 大于等于 n。
2. 将 m 除以 n,得到余数 r1。
3. 如果 r1 等于 0,那么最大公约数就是 n,最小公倍数就是 m 与 n 的积除以最大公约数。
4. 如果 r1 不等于 0,那么将 n 替换成 r1,然后重复步骤 2 和 3 直到余数为 0。
递归求解:
1. 如果 n 等于 0,那么最大公约数就是 m,最小公倍数就是 0。
2. 否则,计算 m 除以 n 的余数 r2,然后递归调用函数,把 n 替换成 r2。最大公约数就是递归返回的值,最小公倍数就是 m 乘以 n 除以最大公约数。
综上所述,使用辗转相除法和递归可以分别求出这两个正整数的最大公约数和最小公倍数。
阅读全文