Every day a leetcode
题目来源:面试题 08.05. 递归乘法
解法1:for循环
for循环A次,每次加B。
代码:
int multiply(int A, int B){
int ans=0;
for(int i=0;i<A;i++) ans+=B;
return ans;
}
结果:

解法2:递归
代码:
int multiply(int A, int B){
if(B>1) return A+multiply(A,B-1);
else return A;
}
结果:

解法3:优化递归
代码:
int multiply(int A, int B){
if(A==0 || B==0) return 0;
if(A>B) return A+multiply(A,B-1);
else return B+multiply(A-1,B);
}
结果:

这篇博客探讨了三种计算两个整数乘积的方法:基本的for循环、递归以及优化后的递归。解法1使用循环,简单明了;解法2通过递归实现,基础的递归算法;解法3优化了递归,减少了重复计算。文章对比了不同方法的时间复杂度和效率,为理解和优化递归算法提供了实例。
1220

被折叠的 条评论
为什么被折叠?



