BD___A的B次方的后三位数

来源:互联网 发布:博明软件 廖胡军 编辑:程序博客网 时间:2024/05/16 23:43

涉及的范围真的好广。。。


A^B的最后三位数表示的整数。1<=A,B<=10000

一脸懵逼啊。。。


每次相乘的时候,只要取后三位就好的啦,我擦,怎么好笨啊。

package temp;import java.util.Scanner;public class Baidu1 {public static void main(String[] args) {Scanner in = new Scanner(System.in);int A = in.nextInt();int B = in.nextInt();int ret, tmp;ret = tmp = 1;for (int i = 0; i < B; i++) {ret = (A * ret) %1000;}System.out.print(ret);}}

使用A^(2*(B/2)),可以进一步的降低时间复杂度。

同时,也可以利用m*n%1000=((m%1000)*(n%1000))%1000


package temp;import java.util.Scanner;public class Baidu1 {public static void main(String[] args) {Scanner in = new Scanner(System.in);int A = in.nextInt();int B = in.nextInt();int ret = helper(A, B);System.out.print(ret);}public static int helper(int a, int b) {if (b == 1) return a%1000;int mid = b/2;int t = helper(a, mid);if (b%2 == 1) {//奇数return ((a%1000)*t%1000)*t%1000;}return t*t%1000;}}









0 0
原创粉丝点击