HDU-2035 (快速幂)

#include<cstdio>
#include<iostream>
#include<string>
#include<cstring>
#include<cmath>
#include<stdlib.h>
#include<algorithm>
#include<vector> 
#include<queue> 
#include<stack>  
using namespace std;
int in(int a,int b)
{
    int ans=1;
    while(b!=0)
    {
        if(b%2==1) 
        {
         ans*=a;
         ans=ans%1000;
      }
      a*=a;
      a=a%1000;
     b=b/2; 
       
    }
    return ans;
}
int main()
{
    int a,b;
    while(cin>>a>>b&&(a!=0||b!=0))
    {
        cout<<in(a,b)<<endl;
    } 


  return 0; 
}

在计算过程中,就直接把中间结果对1000取模。

原文地址:https://www.cnblogs.com/h694879357/p/13452985.html