View Code of Problem 3696

#include<stdio.h>

int a[10][4]={{0},{1},{6,2,4,8},{1,3,9,7},{6,4},
{5},{6},{1,7,9,3},{6,8,4,2},{1,9}};              //规律数组 

int main(){
	int n;
	while(scanf("%d",&n)!=EOF){
		                                        
		switch(n%10)                                       
		{
			case 0:
				if(n==0) {
				printf("1\n");
				break;}
			case 1:
			case 5:
			case 6:printf("%d\n",a[n%10][0]);break;          //0,1,5,6不管多少次方都是自己本身 
		    case 2:
			case 3:
			case 7:
			case 8:printf("%d\n",a[n%10][n%4]);break;        //2,3,7,8有规律 
			case 4:
			case 9:printf("%d\n",a[n%10][n%2]);break;        
		} 
	} 
} 


//两个数相乘,所得积的个位数=原两个数的个位数相乘所得积的个位数。
//因为一个数的个位数在0~9的范围内,可知它们不停的乘以自身,个位数一定是有循环节的:
//例如0永远是0,1永远是1,2的循环节是2,4,8,6,其他数字自己写一下规律 

Double click to view unformatted code.


Back to problem 3696