hdu---1061 Rightmost Digit
2015-01-22 15:39
246 查看
Rightmost Digit
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 35487 Accepted Submission(s): 13456
[align=left]Problem Description[/align]
Given a positive integer N, you should output the most right digit of N^N.
[align=left]Input[/align]
The input contains several test cases. The first line of the input is a single integer T which is the number of test cases. T test cases follow.
Each test case contains a single positive integer N(1<=N<=1,000,000,000).
[align=left]Output[/align]
For each test case, you should output the rightmost digit of N^N.
[align=left]Sample Input[/align]
2 3 4
[align=left]Sample Output[/align]
7 6
简单的找循环节
注意中间会爆int!!!
#include <iostream> #include <algorithm> #include <string.h> #include <math.h> #include <stdio.h> #include <queue> using namespace std; #define N 10010 #define Mod 10 #define LL long long /* */ int f[100010]; int main(){ //freopen("in.in","r",stdin); //freopen("out.out","w",stdout); int T; while(scanf("%d",&T)!=EOF){ while(T--) { int n;scanf("%d",&n); //找循环节 int t = n%Mod; int num=1; LL a = n; f[1] = t; while(1){ a = (a*n)%Mod; num++; f[num] = a; if(a == t) break; } num--; //循环节为num //循环节后的余数 f[0] = f[num]; printf("%d\n",f[n%num]); } } return 0; }
相关文章推荐
- HDU 1061 Rightmost Digit
- HDU 1061:Rightmost Digit
- HDU 1061 Rightmost Digit
- hdu 1061 Rightmost Digit
- HDU 1061 Rightmost Digit (快速幂取模)
- 算法模板之快速幂取模(HDU1061 Rightmost Digit)
- HDU - 1061 Rightmost Digit(数学)
- HDU 1061 Rightmost Digit
- Rightmost Digit 【hdu-1061】【快速幂】
- HDU - 1061 Rightmost Digit
- HDU-1061-Rightmost Digit
- hdu 1061 Rightmost Digit
- hdu1061 Rightmost Digit
- hdu-oj 1061 Rightmost Digit
- (hdu 1061)Rightmost Digit
- 【HDU - 1061】Rightmost Digit
- hdu 1061 Rightmost Digit
- hdu 1061 - Rightmost Digit(求N^N末位)
- HDU1061 Rightmost Digit
- HDU 1061 Rightmost Digit (四则运算求余,快速幂)