問題の説明:
LCYはfeng5166、LWG、JGShiningとイグナチオにハードパズルを与える:LCYが始まるよりも、問題が簡単になりますので、このBTの問題にA ^ b.everybodyオブジェクトを知っているか、与えたと、b。
彼らは賢いが誰であるか、あなたに送金ようnumber.Butの誰もが、この問題をsloveする怠け者である、A ^ Bの最後の数字を知っていると、b、どのように与えた:このパズルは、ことが記載されています。
入力:
みとめのテストケースがあります。各テストケースは二つの数aとb(0 <a、B <= 2 ^ 30)で構成され
出力:
各テストケースのために、あなたは出力A ^ Bの最後の桁の数字をすべきです。
サンプル入力:
7 66
8 800
サンプル出力:
9
6
問題解決のアイデア:
この質問は、B乗の最後の桁を求めている、典型的な高速電力、それが最後の要件であるため、非常に高速な力を加える前に、我々は、元の1桁の数字を取った後、操作を再することができ、なぜなら最後の数字は常に10%で桁、ある決めました。
プログラムコード:
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int quickmul(int a,int b)
{
int ans=1;
while(b)
{
if(b&1)
ans=(ans*a)%10;
a=(a*a)%10;
b>>=1;
}
return ans%10;
}
int main()
{
int n,m;
while(cin>>n>>m)
{
cout<<quickmul(n%10,m)<<endl;//关键n%10
}
return 0;
}