您的位置:首页 > 其它

hdu-1097快速幂取模运算

2016-02-10 22:21 447 查看

A hard puzzle

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)

Total Submission(s): 37273 Accepted Submission(s): 13326



[align=left]Problem Description[/align]
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.

[align=left]Input[/align]
There are mutiple test cases. Each test cases consists of two numbers a and b(0<a,b<=2^30)

[align=left]Output[/align]
For each test case, you should output the a^b's last digit number.

[align=left]Sample Input[/align]

7 66
8 800


[align=left]Sample Output[/align]

9
6[code]import java.util.Scanner;

public class Main {

public static void main(String[] args) {
// TODO Auto-generated method stub
int a,b;
Scanner cin = new Scanner(System.in);
while(cin.hasNext())
{
a=cin.nextInt();
b=cin.nextInt();
int ans=1;
a=a%10;
while(b!=0)
{
if(b%2==1)
ans=(ans*a)%10;//如果是奇数则需要加一次运算
b=b/2;//如果是偶数则两次的幂取余相同,进行缩短时间运算
a=(a*a)%10;
}
System.out.println(ans);
}

}

}

[/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: