zoukankan      html  css  js  c++  java
  • 快速幂

    #include<bits/stdc++.h>
    using namespace std;
    //快速求幂,就是二分法
    long long mod=1000000007L;
    long long pow1(int x,int y){
        //判断奇偶,偶数返回0奇数返回1
        if(y==0) return 1;
        long long q=pow1(x,y/2);//注意只调用一遍,否则On
        if(y&1) return q*q*x;
        else return q*q;
    }
    //带模,其实就是之前做过的,a^b mod n 的题
    long long pow_mod(int x,int y,int c){
        //判断奇偶,偶数返回0奇数返回1
        if(y==0) return 1;
        long long q=pow_mod(x,y/2,c)%c;//注意只调用一遍,否则On
        if(y&1) return (q*q*x)%c;
        else return (q*q)%c;
    }
    //位运算的方式,改成迭代,根据二进制
    int pow_mod_bit(int x,int y,int c){
        int s=1;
        while (y>0)
        {
            //末尾是1
            if(y&1){
                s=(s*x)%c;
            }
            y>>=1;
            x=(x*x)%c;
        }
        return s;
    }
    int main()
    {
        cout<<pow1(2,33)<<endl;
        cout<<pow_mod(2,109,111)<<endl;
        cout<<pow_mod_bit(2,10,10)<<endl;
        return 0;
    }
  • 相关阅读:
    近期总结
    input
    mysql语句
    同步与异步
    localStorage的增删查改封装函数
    最基本的前后台传值
    前段存储的调用函数
    js 控制弹出窗口的大小
    拖拽
    jQuery镇张缩小动画
  • 原文地址:https://www.cnblogs.com/MorrowWind/p/13056616.html
Copyright © 2011-2022 走看看