一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第26天,点击查看活动详情。
🚀write in front🚀
🔎大家好,我是泽奀,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎
🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝
✉️我们并非登上我们所选择的舞台,演出并非我们所选择的剧本📩
💬总结:希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🖊
前言
今天开始我们的刷题第四十四题的训练,刷题永无止境加油!只有不断地刷题才能提高自身地逻辑思维能力。
题目描述
写一个递归函数,不使用 * 运算符,实现两个正整数的相乘。
题目分析
本道题目要求使用递归来实现不使用 * 运算符,实现两个正整数的相乘。其实递归我们已经在前面的题型已经讲了很多次了,这里再把递归的限制条件说下:
- 每一个递归函数都应该只进行有限次的递归调用,否则它就会进入死胡同,永远也不能退出了,这样的程序是没有意义的。
- 存在限制条件,当满足这个限制条件之后的时候,递归便会不再继续。
- 每次递归调用之后都会越来越接近这个限制条件。
实际上递归不用看的太过于复杂,把递归看的简单点,了解题的特性实际上这样使用递归效果更好。这也是我推荐初学者认识递归的最好的办法。
题目代码
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int Multiply(int a, int b)
{
if (b == 0)
{
return 0;
}
return a + Multiply(a, b - 1);// a + a * b
}
int main(void)
{
int i = 0;
int j = 0;
printf("请输入两个数字:");
scanf("%d %d", &i, &j);
Multiply(i, j);
printf("%d\n", Multiply(i, j));
return 0;
}
运行结果
运行结果🖊
请输入两个数字:4 5
20
最后
刷题是需要长期坚持的,加油奥里给~递归是一种算法也是我们在学C语言地时候必须要学会地时候才行。