zoukankan      html  css  js  c++  java
  • [高精度] [快速幂] [洛谷] P1045 麦森数

    基础的快速幂和高精度应用

    数位不会求

    只能百度

    #include <iostream>
    #include <cstring>
    #include <cmath>
    using namespace std;
    
    typedef long long ll;
    
    const int MAXN = 1e3 + 10;
    
    int ans[MAXN] = {1};
    
    int brr[MAXN] = {2};
    
    void muti(int arr[], int brr[], int crr[])
    {
        int ret[MAXN] = {0};
    
        for(int i = 0; i < 550; i++)
        {
            for(int j = 0; j < 550 && i + j < 600; j++)
            {
                ret[i + j] += (arr[i] * brr[j]);
            }
        }
    
        for(int i = 0; i < 550; i++)
        {
            ret[i + 1] += (ret[i] / 10);
            ret[i] %= 10;
        }
    
        memcpy(crr, ret, sizeof(ret));
    }
    
    void qpow(ll n)
    {
        while(n)
        {
            if(n&1)
                muti(ans, brr, ans);
            muti(brr, brr, brr);
            n >>= 1;
        }
    }
    
    ll sisze(ll x)
    {
        return int(log10(2) * x + 1);
    }
    
    void puts(ll n)
    {
        cout<<sisze(n)<<endl;
    
        ans[0]--;
    
        for(int i = 499; i >= 0; i--)
        {
            cout<<ans[i];
            if(i != 499 && i % 50 == 0)
                cout<<endl;
        }
    }
    
    int main()
    {
        int n;
    
        cin>>n;
    
        qpow(n);
    
        puts(n);
    
        return 0;
    }
    
  • 相关阅读:
    各种模板
    HNOI2019总结
    WC2019游记
    THUSC2017 Day1题解
    NOIP2018联赛总结
    LOJ2557. 「CTSC2018」组合数问题
    NOI2018游记
    bzoj4671: 异或图
    sg函数小结
    [NOI2011]Noi嘉年华
  • 原文地址:https://www.cnblogs.com/zeolim/p/12270539.html
Copyright © 2011-2022 走看看