HDU-1061-Rightmost Digit
2017-07-27 20:35
411 查看
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^N的结果的最后一位,我在这里用的是快速幂算法,不会这算法的可以点这个链接http://blog.csdn.net/qq_38712932/article/details/76218952
这里需要注意的就是在快速幂中需要对这个形参a对10取余,后面的每部也需要注意取余
我看别人写的题解后,发现有位大佬写的算法贼六
这个代码的意思是N^N次方从1到N和N相乘你测试时会发现最后一位数有一个周期为4,但是4,5等一系列的数的周期是2,5的周期是1,那么可以将其看作是周期是4的数。
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^N的结果的最后一位,我在这里用的是快速幂算法,不会这算法的可以点这个链接http://blog.csdn.net/qq_38712932/article/details/76218952
这里需要注意的就是在快速幂中需要对这个形参a对10取余,后面的每部也需要注意取余
#include <cstdio> int ks(int a,int b) { int ans=1; a%=10; while(b) { if(b&1) ans=ans*a%10; a=a*a%10; b>>=1; } return ans; } int main() { int m; scanf("%d",&m); while(m --) { int n; scanf("%d",&n); printf("%d\n",ks(n,n)); } return 0; }
我看别人写的题解后,发现有位大佬写的算法贼六
#include <cstdio> int main() { int n,sum=1,f,m; scanf("%d",&m); while(m --) { sum=1; scanf("%d",&n); f=n%10; if(n%4==0) n=4; else n=n%4; for(int a = 0; a < n; a ++) sum=sum*f%10; printf("%d\n",sum); } return 0; }
这个代码的意思是N^N次方从1到N和N相乘你测试时会发现最后一位数有一个周期为4,但是4,5等一系列的数的周期是2,5的周期是1,那么可以将其看作是周期是4的数。
相关文章推荐
- HDU 1061 Rightmost Digit
- HDU 1061 Rightmost Digit
- HDU 1061 Rightmost Digit(找规律)
- hdu 1061 Rightmost Digit
- HDU-#1061 Rightmost Digit(规律、分治、快速幂取模)
- Rightmost Digit hdu 1061
- HDU1061 Rightmost Digit
- HDU 1061 Rightmost Digit
- Rightmost Digit HDU - 1061 (快速幂问题)
- hdu 1061 Rightmost Digit 快速幂取模
- hdu 1061 - Rightmost Digit(求N^N末位)
- hdu 1061 Rightmost Digit_快速幂取余
- hdu 1061 Rightmost Digit
- hdu 1061 Rightmost Digit
- HDU 1061 Rightmost Digit 【快速幂 Or 规律(瞎搞)】
- HDU-1061-Rightmost Digit【快速幂】
- HDU 1061 Rightmost Digit --- 快速幂取模
- HDU - 1061 Rightmost Digit
- HDU 1061 - Rightmost Digit(快速幂)
- hdu 1061 Rightmost Digit