right

来源:互联网 发布:php怎么写后台 编辑:程序博客网 时间:2024/04/30 11:27
题目描述:
计算n^n的最后一位。
大致思路:
当然可以采用快速幂的思想,不过我才用块状树的思想想把n分成根号n份,每一份计算,最后汇总在一起,计算出结果。
代码:
#include<cstdio>using namespace std;int n;int main(){    long a;    int m=30000,f,t,tmp,mp;    scanf("%d",&n);    for (int i=1;i<=n;i++)        {             scanf("%ld",&a);             f=a%m;             t=(int)a/m;             tmp=1;mp=1;             a=a%10;             for (int j=1;j<=m;j++) tmp=tmp*a%10;             for (int j=1;j<=t;j++) mp=mp*tmp%10;             for (int j=1;j<=f;j++) mp=mp*a%10;             printf("%d\n",mp);        }}


0 0
原创粉丝点击