快速幂----递归

简介: 快速幂----递归

这是打卡的第15天,由于某些原因我旷了3天今天先完成今天的任务,会抽时间补上的,主要的讲解知识点在

《算法零基础100讲》(第15讲)二分查找快速幂

概况
三种情况:
在这里插入图片描述
源码解析:
3种情况

#define ll long long
ll f(ll a, ll b, ll c) {
    if (b == 0)
        return 1 % c;           
    ll v = f(a*a % c, b/2, c);  
    if (b % 2)
        v = v * a % c;          
    return v;
}

刷题巩固:
pow(x,n)力扣

class digui
{
public:
    double quickMul(double x, long long n)
    {
        if (n == 0)
        {
            return 1.0;
        }
        double y = quickMul(x, n / 2);
        return n % 2 == 0 ? y * y : y * y*x;
    }
    double myPow(double x, int n)
    {
        long long N = n;
        return n >= 0 ? quickMul(x, n) : 1;
    }
};
相关文章
|
算法 C++
C++快速幂(递归)
C++快速幂(递归)
|
4月前
|
存储
LeetCode------递归(爬楼梯)
这篇文章通过LeetCode上的"爬楼梯"问题介绍了递归的基本概念和实现方法,包括递归公式的推导、基本递归实现、使用备忘录优化以避免重复计算,以及自底向上的迭代方法来提高效率。
LeetCode------递归(爬楼梯)
|
4月前
|
存储 索引
LeetCode------两数之和(3)【数组】
这篇文章介绍了LeetCode上的"两数之和"问题,提供了两种解法:一种是暴力求解法,通过双层循环遍历数组元素对查找两数之和为目标值的索引,时间复杂度为O(n^2);另一种是使用HashMap优化,通过存储元素值和索引,时间复杂度降低到O(n)。
LeetCode------两数之和(3)【数组】
|
7月前
题目----递归和非递归分别实现求n的阶乘(不考虑溢出的问题)
题目----递归和非递归分别实现求n的阶乘(不考虑溢出的问题)
29 1
|
7月前
|
算法
比数组的遍历更快速的 ----折半寻找法
比数组的遍历更快速的 ----折半寻找法
|
7月前
|
算法 Java
算法-----全排列
算法-----全排列
动态规划之----01背包题目解析
动态规划之----01背包题目解析
82 0
|
7月前
力扣每日一题 ---- 2906. 构造乘积矩阵
力扣每日一题 ---- 2906. 构造乘积矩阵
|
7月前
函数递归详解----跳台阶、斐波那契数列、汉诺塔问题
递归的思想:把⼀个⼤型复杂问题层层转化为⼀个与原问题相似,但规模较⼩的⼦问题来求解;直到⼦问题不能再被拆分,递归就结束了。所以递归的思考⽅式就是把⼤事化⼩的过程。递归中的递就是递推的意思,归就是回归的意思。
|
算法
数据结构与算法----递归
数据结构与算法----递归