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