hdu 1061
2013-08-21 22:51
148 查看
题目大意:输入一个正整数N ,然后输出N^N中最右边的那一个数
解题思路:网上有很多人是用一个数组来枚举。其实这一道题是应该用快速取幂法来做
1)快速幂取模就是在O(logn)内求出a^n mod b的值。算法的原理是ab mod c=(a mod c)(b mod c)mod c
代码如下:
解题思路:网上有很多人是用一个数组来枚举。其实这一道题是应该用快速取幂法来做
1)快速幂取模就是在O(logn)内求出a^n mod b的值。算法的原理是ab mod c=(a mod c)(b mod c)mod c
代码如下:
/* * 1061_1.cpp * * Created on: 2013年8月10日 * Author: Administrator */ #include <stdio.h> /** * a:底数(应该是0~9之间的数) * b:指数 * m:要去的模 */ int quick(int a, int b, int m) { int d, t; d = 1; t = a; while (b > 0) { if (b % 2 == 1) { d = (d * t) % m; } b /= 2; t = (t * t) % m; } return d; } int main() { int t, n; scanf("%d", &t); while (t--) { scanf("%d", &n); int dd = quick(n % 10, n, 10); printf("%d\n", dd); } }
相关文章推荐
- hdu 1061 Rightmost Digit
- hdu 1061 Rightmost Digit
- HDU 1061
- 【HDU】1061 - Rightmost Digit(快速幂)
- hdu 1061
- ACM_HDU 1060+1061 leftmost or rightmost digit(数论)
- hdu1061-Rightmost Digit(附20循环的规律解法和附快速幂简单原理)
- hdu 1061 Rightmost Digit 快速幂
- HDU - 1061 Rightmost Digit
- Rightmost Digit hdu 1061
- hdu 1061 Rightmost Digit
- HDU 1061 Rightmost Digit
- HDU 1061 Rightmost Digit 【快速幂】
- HDU 1061 Rightmost Digit(快速幂)
- HDU1061
- HDU 1061 Rightmost Digit
- DFS专攻:HDU 1312与COJ 1061
- HDU 1061
- hdu 1061 数学
- HDU - 1061 -Rightmost Digit (幂取模,白书)