忍了好久没写的HDOJ1097:A hard puzzle

A hard puzzle

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

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.
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
首先放上代码:
#include
int main()
{
    long a,b;
    int temp;
    while(scanf("%ld%ld",&a,&b)!=EOF)
    {
        a=a%10;
        b=(b>4)?b%4:b;
        if(b==0)
        {
            b=4;
        }
        for(temp=1;b>0;b--)
        {
            temp=temp*a;
        }
        printf("%dn",temp%10);
    }
   return 0;
}

 一道找规律的题目,研究一下会发现末位数都是有规律的,都是4的倍数

1是1、1、1、1
2是2、4、8、6
3是3、9、7、1
4是4、6、4、6
5是5、5、5、5
6是6、6、6、6
7是7、9、3、1
8是8、4、2、6
9是9、1、9、1

这样,找到规律之后打码就可以了,注意a,b必须要是long才行。还有就是return 0;要写到下面,否则会提示格式错误CE……我貌似就是CE了好久没有找到错在哪里,心灰意冷,55555555………………

不算难的一道题,可我为什么做了好久才做出来呢…………

发表评论

您的电子邮箱地址不会被公开。