题目来源: Author Ignatius.L (Hdu 1061)
基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题
给出一个整数N,输出N^N(N的N次方)的十进制表示的末位数字。
Input
一个数N(1 <= N <= 10^9)Output
输出N^N的末位数字Input示例
13Output示例
3
幂尾数的循环节为4!学到了新姿势~
知道这个点就直接刚就好。
附AC代码:
1 #include<iostream> 2 #include<algorithm> 3 #include<cmath> 4 using namespace std; 5 6 int main(){ 7 int n; 8 cin>>n; 9 int a=n%10; 10 int b=n%4; 11 if(b==0) b=4; 12 int c=pow(a,b); 13 cout<<c%10<<endl; 14 return 0; 15 }
快速幂写法真无愧于这个名字:
1 #include<stdio.h> 2 #include<math.h> 3 int main(){ 4 int n; 5 scanf("%d",&n); 6 int m = n%10; 7 int ans = 1; 8 while(n){ 9 if(n&1){ 10 ans *= m; 11 ans %= 10; 12 } 13 m *= m; 14 m %= 10; 15 n /= 2; 16 } 17 printf("%d\n",ans); 18 return 0; 19 }
时间: 2024-10-09 21:13:57