HDU 1061 Rightmost Digit
2015-08-15 18:37
453 查看
链接:http://acm.hdu.edu.cn/showproblem.php?pid=1061
Total Submission(s): 39835 Accepted Submission(s): 15036
Each test case contains a single positive integer N(1<=N<=1,000,000,000).
Author
Ignatius.L
Recommend
大意——给你一个正整数n,要你算出n^n的最后一位数码。其中1<=n<=1,000,000,000。
思路——与HDU 1097差不多,我们可以用二分求快速幂,并且边乘边模,这样的话就不会出问题了。
复杂度分析——时间复杂度:O(log(n)),空间复杂度:O(1)
附上AC代码:
Rightmost Digit
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 39835 Accepted Submission(s): 15036
Problem Description
Given a positive integer N, you should output the most right digit of N^N.Input
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).
Output
For each test case, you should output the rightmost digit of N^N.Sample Input
2 3 4
Sample Output
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.
Author
Ignatius.L
Recommend
大意——给你一个正整数n,要你算出n^n的最后一位数码。其中1<=n<=1,000,000,000。
思路——与HDU 1097差不多,我们可以用二分求快速幂,并且边乘边模,这样的话就不会出问题了。
复杂度分析——时间复杂度:O(log(n)),空间复杂度:O(1)
附上AC代码:
#include <iostream> #include <cstdio> #include <string> #include <cmath> #include <iomanip> #include <ctime> #include <climits> #include <cstdlib> #include <cstring> #include <algorithm> #include <queue> #include <vector> #include <set> #include <map> using namespace std; typedef unsigned int UI; typedef long long LL; typedef unsigned long long ULL; typedef long double LD; const double pi = acos(-1.0); const double e = exp(1.0); const double eps = 1e-8; const int mod = 10; int quick_pow(int a); int main() { ios::sync_with_stdio(false); int T, a; scanf("%d", &T); while (T--) { scanf("%d", &a); printf("%d\n", quick_pow(a)); } return 0; } int quick_pow(int a) { int res = 1; int b = a; while (b > 0) { if (b & 1) res = ((res%mod)*(a%mod))%mod; a = ((a%mod)*(a%mod))%mod; b >>= 1; } return res; }
相关文章推荐
- 7 Types of Regression Techniques you should know!
- linuix 添加、删除用户
- linux 修改root密码以及忘记root密码
- Eclipse中的Web项目自动部署到Tomcat
- Ubuntu makefile操作
- JavaSE基础--(二)IO部分
- VirtualBox中centos安装增强功能报错解决办法
- 安装R语言开发环境RStudio服务器版
- HDU1000 A + B Problem
- HDU5383 不需要满流的费用流 网络流
- hdu 1588
- HDU 5365
- 最小生成树算法
- 关情纸尾-----UIKit基础-简述KVC和KVO
- Android 之ExpandableListView使用
- 修改eclipse界面
- HDU 1251 统计难题
- Android中的Selector
- 删除从Mac上面下载来的图片文件
- Hibernate直接执行SQL语句