当前位置: 首页 > news >正文

广州营销型网站建设公司哪家名气大石家庄seo公司

广州营销型网站建设公司哪家名气大,石家庄seo公司,推广赚钱的项目,vuejs做视频网站文章目录 递归乘法题目链接题目详解解题思路:代码实现: 结语 欢迎大家阅读我的博客,给生活加点impetus!! 让我们进入《题海探骊》,感受算法之美!! 递归乘法 题目链接 在线OJ 题目…

文章目录

  • 递归乘法
    • 题目链接
    • 题目详解
      • 解题思路:
      • 代码实现:
    • 结语

欢迎大家阅读我的博客,给生活加点impetus!!
在这里插入图片描述
让我们进入《题海探骊》,感受算法之美!!

递归乘法

题目链接

在线OJ

题目详解

在这里插入图片描述

这里需要注意保证整数乘法范围不会被溢出

解题思路:

有些人肯定就会直接写出A*B。

int multiply(int A, int B) {return A*B;
}
//或者
int multiply(int A,int B)
{if(B==0){return 0;}return A+multiply(A,B-1);
}

但是还有没有不使用乘法的方法呢?
有的,但是这个方法有点吃操作!!

乘法在现实中常见,十进制的乘法都会算,那二进制的乘法利用小学学的方法能不能够计算呢?我们来看一下

假如A=1101(二进制),B=1001(二进制)。
怎么算呢?我们把A*B展开,下来自己去实践一下。
这里直接来讲结论:

对于左移位操作,在二进制中实际是提升阶,比如1<<2=100=4,右移对应降低阶4>>1=10=2,和10进制中乘10和除10的作用一样。

我们来看一下左移和右移的原理

在这里插入图片描述
接下来我们就能够将例子这样改写:

在这里插入图片描述

代码实现:

int multiply(int A, int B){if(B){//判断b是否为0//从0阶(A*(B&1)*2^0)开始,每次算当前阶(A*(B&1)*2^n)的乘法相加,直到B右移完全,即B为0。if(B&1){//如果B的最后一位是1//B就能够乘A上去,递归算B右移第2位,然后求和+(1*A=A)。return multiply(A<<1,B>>1)+A;}else{//B就不能够乘A上去,递归算B右移第2位,然后求和+(0*A=0)。return multiply(A<<1,B>>1);}}// B为0返回0return 0;
}

理解:
1:因为这个变量的调整是位移,2倍调整的,时间复杂度是logn
2:<< 1 是将 A 左移一位,相当于 A * 2>> 1 是将 B 右移一位,相当于 B / 2
3:左移一位相当于乘2
4:B&1主要是为了判断这个结尾是否为1判断是否需要加A,递归的时候B右移,就能够取到B的所有位
5:涉及位移,按位与,三目操作符号等操作,由十进制乘法联想到二进制乘法。

我们最后来看解法代码:
这里我们可以使用三目操作符:

一般形式为condition? expression1 : expression2。其中condition是一个布尔表达式,expression1和expression2是两个不同的表达式或值。
当condition为true时,整个表达式的值为expression1的值;当condition为false时,表达式的值为expression2的值。

直接返回return B?multiply(A<<1,B>>1)+(B&1?A:0):0;

结语

感谢大家阅读我的博客,不足之处欢迎指正,希望大家有更好的思路与我交流!!
前日父子万日锛-铁杵磨成针!!加油!!
在这里插入图片描述

http://www.sczhlp.com/news/48185/

相关文章:

  • 上海网站制作费用石家庄关键词排名首页
  • wordpress怎么设置派送中蜗牛精灵seo
  • 网站建设選宙斯王自媒体软文发布平台
  • 东营网站seo服务免费创建网站
  • wordpress软件下载站关键词分析软件
  • 布吉商城网站建设哪家便宜网页搜索关键词
  • 阿里云1m宽带做网站卡吗百度站长工具是什么意思
  • 番禺外贸型网站建设seo教程视频
  • 连锁店销售管理系统邯郸seo排名
  • dede网站婚纱模板线上培训机构排名前十
  • 做一的同志小说网站建网站教程
  • 金融网站建设公司排名济南seo公司
  • 设计公司展厅效果图网络优化器下载
  • html 网站开发软件四川seo选哪家
  • redis 移动 wordpress需要优化的网站有哪些?
  • 网站建设与维护报告总结专业做网络推广的公司
  • 微信网站开发流程百度关键词优化是什么意思
  • 无锡seo网站建设费用百度的竞价排名是哪种方式
  • 免费的微网站软件开发培训机构
  • 淘宝客的免费电影网站怎么做友情链接交换网站
  • 外贸网站模板设计我想做地推怎么找渠道
  • 网页设计网站教程深圳网络营销外包公司推荐
  • 网站制作需要多少费用厦门seo网站优化
  • 国外美女图片 网站源码谷歌浏览器下载
  • 网页设计网站怎么做特效app推广一手单平台
  • 做网站设计怎么提升网上营销
  • 怎么制作自己的免费网站域名搜索引擎
  • 公司做网站需要准备什么条件温州seo网站推广
  • 网站建设应用权限软文写作技巧及范文
  • 网站编程用什么语言好广东广州网点快速网站建设