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.
可以发现一个规律:
当 n = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 31 ...
rdigit = 1 4 7 6 5 6 3 6 9 0 1 6 3 6 5 6 7 4 9 0 1 4 7 6 5 6 3 6 9 0 ...
所以是以20为周期的规律。
得到这个规律,算法就变得很easy
#include<iostream>
using namespace std;
int main()
{
int rdigit[20] = {0,1,4,7,6,5,6,3,6,9,0,1,6,3,6,5,6,7,4,9};
int n;
cin>>n;
int res[n];
for(int i=0;i<n;i++)
{
int temp;
cin>>temp;
res[i]=rdigit[temp%20];
}
for(int i=0;i<n;i++)
{
cout<<res[i]<<endl;
}
system("pause");
return 0;
}
分享到:
相关推荐
【标题】"Rightmost Digit HDU" 这道题目来源于HDU(杭州电子科技大学)的在线判题系统,通常这类题目是编程竞赛或者算法训练的一部分。"Rightmost Digit"直译为“最右边的数字”,我们可以推测这是一个关于数字...
【标题】"hdoj.rar_Dividing HDOJ_OJ 1082_hdoj 10_杭电oj_杭电oj1000" 涉及的知识点主要围绕着“杭电在线判题系统(HDOJ)”以及其中的题目1082和10系列题目。HDOJ是杭州电子科技大学主办的一个在线编程竞赛平台,...
**快速幂取模(Rightmost Digit)**:给定一个正整数N,求N的N次方的最右边的数字。对于大数据规模,直接暴力计算会导致超时。可以采用模幂运算和位运算优化,例如每次计算2的幂,然后根据规律求解。\n\n3. **位...
- **Rightmost Digit**: 数学运算题目,要求找出一个数的最右位数字。 - **Fibonacci Again**: 斐波那契数列题目,要求高效计算斐波那契数列的某个值。 - **Coin Change**: 经典的组合数学题目,要求找出最少硬币...
rightmost = max(rightmost, i + nums[i]) return dp[-1] ``` 在这段代码中,我们首先初始化一个全为False的状态数组dp,然后从第一个位置开始,依次检查每个位置是否可以从已达到的位置跳跃过来。如果有,我们就...
There are an odd number of 1’s among the rightmost digits, so this position is not losing. However, suppose k3 were changed to be 12. Then, there would be exactly two 1’s in each digit position, and...
劳伟的文章通过对AIX5.3/6.1堆溢出漏洞利用机制的深入分析,不仅为我们揭示了rightmost和leftmost函数在堆管理中的作用,还提出了一种新的利用机制并通过CDE ToolTalk数据文件解析漏洞的有效性验证。此外,文章还从...
rightmost = rightmost.right; } // 将原先的右子树接到左子树的最右结点后面 rightmost.right = node.right; node.right = node.left; node.left = null; } node = node.right; } } } ``` **时间复杂度*...
radius = (rightmost - leftmost) / 2; ``` 圆心的x坐标是这两个点的平均值,y坐标需要额外的步骤来确定,因为一个简单的平均可能会落在非边缘像素上。一种方法是找到这两点连线上的所有边缘像素,然后找到它们的...
LR(Lookahead Rightmost Derivation)分析方法基于自底向上的方式处理语法,它结合了预测(Lookahead)和右最简推导(Rightmost Derivation)的概念。在本压缩包“LR-fenxi.rar”中,包含了一个名为“LR-fenxi.doc...
1. 令 x 是权值左倾树中任意的内部结点,从 x 沿最右支路径到外部结点的路径长度 rightmost(x) 满足下式:rightmost(x) (w(x)+1)。 权值左倾树的融合操作相比高度左倾树的融合操作要快一个常数倍因子。这是因为,在...
LR(Left-to-right,Rightmost Derivation)、LL(Left-to-right,Leftmost Derivation)或LALR(Lookahead Left-to-right,Rightmost Derivation)等解析策略常用于构建语法分析器。 3. **语义分析**(Semantic ...
在本资料合集中,重点讨论的是LR(Look-Ahead Rightmost Derivation)语法分析方法。 LR分析是一种自底向上的语法分析技术,它通过一个称为LR解析表的工具来指导解析过程。"LR"这个缩写代表“Look-Ahead Rightmost ...
SLR(Simple Left-to-Right, Rightmost Derivation)分析器: SLR分析器是一种最简单的LR分析器,它按照自左向右扫描输入串,并采用最右推导的方式进行解析。SLR分析器的工作原理是通过构建一个状态转移表,每个状态...
**GLRParser-0.3.4.tar.gz** 是一个针对Python编程语言的解析库,主要功能是实现Generalized Leftmost-Rightmost (GLR) 解析算法。GLR解析是一种扩展自LR(Left-to-Right, Rightmost-derivation)解析的方法,它能...
LR(0) 分析是一种自底向上的语法分析方法,其中“L”代表Left-to-right扫描输入,“R”代表Rightmost derivation,而“0”表示没有查看任何未来的输入符号。LR(0) 分析器基于状态机,每个状态包含一个项目集,项目集...
LR分析是Lookahead Rightmost Derivation的缩写,它是一种自底向上、从右到左的语法分析方法。其中,L代表Left-to-right扫描输入,R代表Rightmost derivation,即最右推导。而1则代表每一步分析时使用的1个输入符号...
LR(1)(Left-to-Right, Rightmost derivation with 1 symbol lookahead)分析法是一种用于构建分析器的语法分析方法,通常用于分析上下文无关文法的语法结构,属于LR分析法的一种变种。它是一种强大的自底向上语法...
LR 分析(Lookahead Rightmost Derivation)是一种自底向上的语法分析方法,LR 表示“Left-to-Right扫描输入,Rightmost Derivation”。SLR1 是 LR 分析的一个变种,"1" 表示它使用一个符号的向前看(lookahead)...