0
点赞
收藏
分享

微信扫一扫

Python|利用递归轻松解决数的乘方问题

Gaaidou 2022-02-13 阅读 52


微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章

问题描述

求一个数的乘方,数学公式如下是成立的

示例:Python|利用递归轻松解决数的乘方问题_go

我们可以将乘方的运算转换为乘法的运算

输入:Python|利用递归轻松解决数的乘方问题_算法_02,定义Python|利用递归轻松解决数的乘方问题_人工智能_03,b=y/2

输出:Python|利用递归轻松解决数的乘方问题_强化学习_04

解决方案

求x的y次方的值,当y是偶数时,最后能转换成两个数相乘,当y是奇数时,最后我们必须要在返回值后面乘以一个x。

如果求Python|利用递归轻松解决数的乘方问题_人工智能_05,我们可以先假定Python|利用递归轻松解决数的乘方问题_算法_06,于是Python|利用递归轻松解决数的乘方问题_算法_07,那么就是Python|利用递归轻松解决数的乘方问题_python_08;假定Python|利用递归轻松解决数的乘方问题_算法_09,那么Python|利用递归轻松解决数的乘方问题_python_10,于是现在就转换成了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);

        }

    }

}


结语

文章通过利用算法中的递归来解决数的乘方的问题,将乘方问题转化为乘法问题,从而使算法更加简单易懂。

我们小组对于算法创作还有很多需要学习了解的地方,接下来我们会偏向利用算法来解决一些日常生活中的问题和用算法解决数学等其他科目的问题来进行创作。

实习编辑:衡辉



举报

相关推荐

0 条评论