快速幂----递归

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

这是打卡的第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++快速幂(递归)
|
3月前
|
存储
LeetCode------递归(爬楼梯)
这篇文章通过LeetCode上的"爬楼梯"问题介绍了递归的基本概念和实现方法,包括递归公式的推导、基本递归实现、使用备忘录优化以避免重复计算,以及自底向上的迭代方法来提高效率。
LeetCode------递归(爬楼梯)
|
3月前
|
存储
LeetCode------斐波那契数列(2)
这篇文章提供了解决LeetCode上"斐波那契数列"问题的两种方法:一种是使用备忘录模式通过递归计算并存储结果以避免重复计算,另一种是自底向上的迭代方法,同时要求结果对1e9+7取模。
LeetCode------斐波那契数列(2)
|
6月前
题目----递归和非递归分别实现求n的阶乘(不考虑溢出的问题)
题目----递归和非递归分别实现求n的阶乘(不考虑溢出的问题)
26 1
|
6月前
题目----逆序
题目----逆序
27 0
|
6月前
|
算法 Java
算法-----全排列
算法-----全排列
|
6月前
函数递归详解----跳台阶、斐波那契数列、汉诺塔问题
递归的思想:把⼀个⼤型复杂问题层层转化为⼀个与原问题相似,但规模较⼩的⼦问题来求解;直到⼦问题不能再被拆分,递归就结束了。所以递归的思考⽅式就是把⼤事化⼩的过程。递归中的递就是递推的意思,归就是回归的意思。
|
12月前
|
图计算 索引 容器
leetcode100----双指针
leetcode100----双指针
剑指offer_递归与循环---斐波那契数列
剑指offer_递归与循环---斐波那契数列
62 0