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

Posted 吾之奉先

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了人生第一个快速幂的题(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

以上是关于人生第一个快速幂的题(HDU - 1097--A hard puzzle )的主要内容,如果未能解决你的问题,请参考以下文章

HDU 1097 A hard puzzle(快速幂)

hdu 5451 Best Solver

hdu 5187 基于快速幂的快速乘法

Hdu 1097 A hard puzzle

hdu-2685 I won't tell you this is about number theory---gcd和快速幂的性质

HDU5950(矩阵快速幂)