hdoj 1061 Rightmost Digit
2016-07-22 21:22
399 查看
Rightmost Digit
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 47546 Accepted Submission(s): 17962
[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
Hint
In the first case, 3 * 3 * 3 = 27, so the rightmost digit is 7.
In the second case, 4 * 4 * 4 * 4 = 256, so the rightmost digit is 6.
1--9逐个列举的 有规律,,,,
#include<cstdio> int main() { int t,r; long long n; scanf("%d",&t); while(t--) { scanf("%lld",&n); r=n%10; if(r==0||r==1||r==5||r==6) printf("%d\n",r); else if(r==2) { if(n%4==0) printf("6\n"); else if(n%4==1) printf("2\n"); else if(n%4==2) printf("4\n"); else printf("8\n"); } else if(r==3) { if(n%4==0) printf("1\n"); else if(n%4==1) printf("3\n"); else if(n%4==2) printf("9\n"); else printf("7\n"); } else if(r==4) { if(n%2==0) printf("6\n"); else printf("4\n"); } else if(r==7) { if(n%4==0) printf("1\n"); else if(n%4==1) printf("7\n"); else if(n%4==2) printf("9\n"); else printf("3\n"); } else if(r==8) { if(n%4==0) printf("6\n"); else if(n%4==1) printf("8\n"); else if(n%4==2) printf("4\n"); else printf("2\n"); } else { if(n%2==0) printf("1\n"); else printf("9\n"); } } return 0; }
快速幂运算:
注意用 long long!!
#include<cstdio> #include<cmath> #define LL long long LL mod_pow(LL x,LL n,LL mod) { LL ans=1; while(n) { if(n&1) { ans=(ans*x)%mod; } x=(x*x)%mod; n>>=1; } return ans; } int main() { LL n; int t; scanf("%d",&t); while(t--) { scanf("%lld",&n); printf("%lld\n",mod_pow(n,n,10)); } return 0; }
相关文章推荐
- oracle11g plsql调试存储过程卡死的处理技巧
- 推荐算法:基于svd的算法:基于领域
- hdu 5724(博弈)
- 栈(数组实现)
- [置顶] 求解单源最短路径:Dijkstara算法典型示例
- Byte[] to InputStream or OutputStream
- Samy XSS Worm 分析
- GUI为什么不设计为多线程(用户事件和底层事件的流程是相反的,每层都加锁效率太低,共用一把锁那就是单线程)
- Pku oj 1905 Expanding Rods(简单几何加二分)
- HDOJ 2041 超级楼梯
- Android 拖动条(SeekBar)实例 附完整demo项目代码
- 合格程序员的基本素质
- UVALive 2911 Maximum
- hdoj 1009 FatMouse' Trade
- excel的导入导出
- codeforces 691E Xor-sequences(矩阵快速幂)
- 【POJ 2533】Longest Ordered Subsequence(最长上升子序列LIS)
- java外挂
- git on server(ssh)深入剖析,github提供服务原理
- unity3d 第十一天