hdu 1061
2015-06-21 22:31
211 查看
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.
只需要把0、1、2、...、9各乘积的个位数保留下来,每次再输出即可。
ac代码
#include <iostream>
using namespace std;
int x[10][10];
int ux[10];
int NotIn(int a,int b);
int main()
{
for(int i=0;i<10;i++)
ux[i] = -1;
for(int i=0;i<10;i++)
{
int use=i;
int temp = use%10;
int j=0;
while(NotIn(temp,i))
{
ux[i]++;
x[i][j++] = temp;
use*=i;
temp = use%10;
//cout << x[i][j-1] <<" ";
}
//cout << endl;
}
int N;
cin >> N;
for(int i=0;i<N;i++)
{
long long ss;
cin >> ss;
int a = ss%10;
int b = (ss)%(ux[a]+1);
if(b>0)
cout << x[a][b-1]<< endl;
else
cout << x[a][ux[a]]<<endl;
}
return 0;
}
int NotIn(int a,int b)
{
for(int j=0;j<=ux[b];j++)
if(a==x[b][j])
return 0;
return 1;
}
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.
只需要把0、1、2、...、9各乘积的个位数保留下来,每次再输出即可。
ac代码
#include <iostream>
using namespace std;
int x[10][10];
int ux[10];
int NotIn(int a,int b);
int main()
{
for(int i=0;i<10;i++)
ux[i] = -1;
for(int i=0;i<10;i++)
{
int use=i;
int temp = use%10;
int j=0;
while(NotIn(temp,i))
{
ux[i]++;
x[i][j++] = temp;
use*=i;
temp = use%10;
//cout << x[i][j-1] <<" ";
}
//cout << endl;
}
int N;
cin >> N;
for(int i=0;i<N;i++)
{
long long ss;
cin >> ss;
int a = ss%10;
int b = (ss)%(ux[a]+1);
if(b>0)
cout << x[a][b-1]<< endl;
else
cout << x[a][ux[a]]<<endl;
}
return 0;
}
int NotIn(int a,int b)
{
for(int j=0;j<=ux[b];j++)
if(a==x[b][j])
return 0;
return 1;
}
相关文章推荐
- 《人,绩效和职业道德》 读后感
- 黑马程序员-多态的理解
- 实战部署weblogic集群及发布应用(7)
- 腾讯最近上线的快豹,是个什么样的阅读产品?
- 实战部署weblogic集群及发布应用(6)
- 读后感
- Redis配置大全
- CV_8U CV_32F, and CV_32S
- MySQL数据库中插入中文出现乱码的解决方案
- Spring MVC处理错误的三种方法
- css积累
- leetcode——Generate Parentheses
- java学习之旅02--计算机语言发展史,Java历史,Java核心优势,Java三大版本的区别
- 团队作业第五周-运行与总结
- 人,绩效和职业道德 读后感
- 读后感
- 读后感
- 实战部署weblogic集群及发布应用(5)
- Xcode中的快捷键使用
- Uva - 714 - Copying Books