Rightmost Digit 【hdu-1061】

Rightmost Digit

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 62844    Accepted Submission(s): 23625


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.

代码如下:

#include<cstdio>
int main()
{
	int T;
	scanf("%d",&T);
	while(T--){
		int n;
		scanf("%d",&n);
		int q=n%10;
		int res;
		if(q==0){
			res=0;
		}else if(q==1){
			res=1;
		}else if(q==2){
			int a=n%4;
			if(a==1) res=2;
			if(a==2) res=4;
			if(a==3) res=8;
			if(a==0) res=6;
		}else if(q==3){
			int a=n%4;
			if(a==1) res=3;
			if(a==2) res=9;
			if(a==3) res=7;
			if(a==0) res=1;
		}else if(q==4){
			int a=n%2;
			if(a==1) res=4;
			if(a==0) res=6;
		}else if(q==5){
			res=5;
		}else if(q==6){
			res=6;
		}else if(q==7){
			int a=n%4;
			if(a==1) res=7;
			if(a==2) res=9;
			if(a==3) res=3;
			if(a==0) res=1;
		}else if(q==8){
			int a=n%4;
			if(a==1) res=8;
			if(a==2) res=4;
			if(a==3) res=2;
			if(a==0) res=6;
		}else{
			int a=n%2;
			if(a==1) res=9;
			if(a==0) res=1;
		}
		printf("%d\n",res);
	}
	
	return 0;
}


发布了79 篇原创文章 · 获赞 5 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/DNMTOOBA/article/details/79534034