首页 > 代码库 > Rightmost Digit
Rightmost Digit
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) |
Total Submission(s): 6667 Accepted Submission(s): 1721 |
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 234 |
Sample Output 76 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 |
思路: long long int 因为已知容易超出限制 ,所以此处一定要注意 ,另外,利用/2的方式进行 这样可以大大缩短程序运行时间。
1 #include<stdio.h> 2 //大数问题 3 long long Solve(long long n) 4 { 5 long long int count=n; 6 long long int result=1; 7 while(count) 8 { 9 if(count%2!=0)10 {11 result*=n;12 if(result>=10)13 result=result%10;14 }15 n*=n;16 n=n%10; 17 count/=2;18 }19 return result;20 }21 22 23 int main(int argc, char *argv[])24 {25 long long T,N;26 scanf("%lld",&T);27 while(T--)28 {29 scanf("%lld",&N);30 printf("%lld\n",Solve(N));31 32 } 33 return 0;34 }
Rightmost Digit
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。