题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1097
A hard puzzle
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 10488 Accepted Submission(s): 3597
Problem Description
lcy gives a hard puzzle to feng5166,lwg,JGShining and Ignatius: gave a and b,how to know the a^b.everybody objects to this BT problem,so lcy makes the problem easier than begin.
this puzzle describes that: gave a and b,how to know the a^b's the last digit number.But everybody is too lazy to slove this problem,so they remit to you who is wise.
this puzzle describes that: gave a and b,how to know the a^b's the last digit number.But everybody is too lazy to slove this problem,so they remit to you who is wise.
Input
There are mutiple test cases. Each test cases consists of two numbers a and b(0<a,b<=2^30)
Output
For each test case, you should output the a^b's last digit number.
Sample Input
7 66 8 800
Sample Output
9 6解题思路:这一题a,b的取值范围是在1到2的30次方之间,在计算机里面整形最大的数也就是2的31次方,所以直接算是算不出来的当然了,用大数相乘也许可以。但是大数很麻烦,能少用就尽量少用。这一题其实是有规律的。列几个式子就可以发现,2^1=2,2^2=4,2^3=8,2^4=16,2^5=32;8^1=8,8^2=64,8^3=512,8^4=4096,接下来8的5次方的个位数肯定是8的1次方的一样8。我们可以发现一个规律,个位数字以4为周期重复着。那么,12,22,32,或者112超过了一位数的也一样吗?是的,这只跟它的个位数有关系大于个位的是什么数完全不用去理会。至于编程,每个人的风格不一样,能把这一种思想体现出来就可以了。以下是本人的代码(提交已通过)