Python|利用递归轻松解决数的乘方问题
Posted 算法与编程之美
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python|利用递归轻松解决数的乘方问题相关的知识,希望对你有一定的参考价值。
本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。
问题描述
求一个数的乘方,数学公式如下是成立的
示例:
我们可以将乘方的运算转换为乘法的运算
输入:,定义,b=y/2
输出:
解决方案
求x的y次方的值,当y是偶数时,最后能转换成两个数相乘,当y是奇数时,最后我们必须要在返回值后面乘以一个x。
如果求,我们可以先假定,于是,那么就是;假定,那么,于是现在就转换成了b*b。
代码清单 1 DFS求解1到100求和问题Python代码
package recursion; public class RecursionTest8 { public static void main(String[] args) { System.out.println(pow(2,5)); }
//用递归的算法实现求乘方,y不能是负数 public static int pow(int x, int y){ if(y == 0){//任何数的0次方是1 return 1; } if(y == 1){//边界条件,当y等于1时,不再进行递归 return x; } if(y%2==1){ //奇数 return pow(x*x,y/2)*x; }else { return pow(x*x,y/2); } } } |
结语
本文章通过利用算法中的递归来解决数的乘方的问题,将乘方问题转化为乘法问题,从而使算法更加简单易懂。
我们小组对于算法创作还有很多需要学习了解的地方,接下来我们会偏向利用算法来解决一些日常生活中的问题和用算法解决数学等其他科目的问题来进行创作。
实习编辑:衡辉
作者:罗梦思、曾希明、陈珂桦
稿件来源:深度学习与文旅应用实验室(DLETA)
以上是关于Python|利用递归轻松解决数的乘方问题的主要内容,如果未能解决你的问题,请参考以下文章
课程作业03:用递归方法计算组合数解决汉诺塔问题判断某个字符串是否回文