本文主要是介绍HDU 1097 A hard puzzle(规律),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1097
题意:
求a的b次方的最后一位。
题解:
直接从例子入手,
第一组数据 7 66,结果如下(只要最后一位所以模10)
7 9 3 1 7 9···
循环节为4,即结果在4个数值内循环出现。
第二组数据 6 800,结果如下
6 6 6 6···
循环节为1
···
数位只有10种情况,所以循环节不会大于10
代码:
#include<cstdio>
int v[11];
int main()
{int a,b;while(~scanf("%d%d",&a,&b)){int i;a=a%10;v[1]=a;int xunhuan;for(i=2;i<=10;i++){v[i]=(v[i-1]*a)%10;if(v[i]==a) {xunhuan=i-1;break;}}b=b%xunhuan;if(b==0) printf("%d\n",v[xunhuan]);else printf("%d\n",v[b]);}return 0;
}
这篇关于HDU 1097 A hard puzzle(规律)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!