人生第一个快速幂的题(HDU - 1097--A hard puzzle )

题意:

最简单的快速幂。给你两个数n和m,求n^m的最后一位;

解题思路:

额,快速幂就很简单了,这里只要最后一位可以一对每次运算都%10;

代码:

#include<cstdio>
#include<cstring>
#include<algorithm>
#include <iostream>
using namespace std;
#define N 100000
long long n,m;
long long pow_(long long n,long long m)
{
    long long ans=1;
    while (m!=0)
    {
        if (m&1) ans*=n%10;
        n*=n%10;
        m>>=1;   //将m右移,快速幂算法不会的看PS;
    }
    return ans;
}

int main()
{
    while (cin>>n>>m)
    {
        long long m1=pow_(n,m);
        cout<<m1<<endl;
    }
}

 PS:快速幂:http://www.cnblogs.com/SunQi-lvbu/p/6827815.html

posted @ 2017-05-08 20:56  飞将-奉先  阅读(149)  评论(0编辑  收藏  举报