当前位置:编程学习 > C/C++ >>

poj1995 Raising Modulo Numbers 整数型快速幂 算法的应用

整数型快速幂 算法的应用,就是一道模版题目
quickmod  那个函数就是模版,很简单就能看懂
 
 
#include<iostream>  
#include<cstdio>  
#include<list>  
#include<algorithm>  
#include<cstring>  
#include<string>  
#include<queue>  
#include<stack>  
#include<map>  
#include<vector>  
#include<cmath>  
#include<memory.h>  
#include<set>  
  
#define ll long long  
#define LL __int64  
#define eps 1e-8  
  
//const ll INF=9999999999999;  
  
  
#define inf 0xfffffff  
  
using namespace std;  
  
//vector<pair<int,int> > G;  
//typedef pair<int,int> P;  
//vector<pair<int,int>> ::iterator iter;  
//  
//map<ll,int>mp;  
//map<ll,int>::iterator p;  
//  
//vector<int>G[30012];  
  
ll quickmod(ll a,ll b,ll MOD)  
{  
    ll ans=1;  
    while(b)  
    {  
        if(b&1)  
        {  
            ans=(ans*a)%MOD;  
            b--;  
        }  
        b/=2;  
        a=a*a%MOD;  
    }  
    return ans;  
}  
  
int main(void)  
{  
    int t;  
    ll MOD;  
    int n;  
    cin>>t;  
    while(t--)  
    {  
        cin>>MOD>>n;  
        ll a,b;  
        ll ans=0;  
        for(int i=0;i<n;i++)  
        {  
            cin>>a>>b;  
            ans=(ans%MOD+quickmod(a,b,MOD))%MOD;  
        }  
        cout<<ans<<endl;  
    }  
}  

 


补充:软件开发 , C++ ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,