HDU 1061 Rightmost Digit

快速幂。只保存末位。快速幂的第一个题。

#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;

int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        int n;
        scanf("%d",&n);
        int a=n%10,b=n,c=1;
        while(b!=0)
        {
            if(b%2==1)c=(c*a)%10,b--;
            else a=(a*a)%10,b=b/2;
        }
        printf("%d\n",c);
    }
    return 0;
}

 

posted @ 2015-07-17 12:31  Fighting_Heart  阅读(101)  评论(0编辑  收藏  举报