2 条题解

  • 0
    @ 2023-12-15 13:31:32

    快速幂+判断上的技巧

    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            int a = sc.nextInt();
            int b = sc.nextInt();
            String b1 = Integer.toString(b, 2);
            long res = 1;
            long last = a;
            for (int i = b1.length() - 1; i >= 0; i--) {
                if(b1.charAt(i) == '1'){
                    res *= last;
                }
                if(last > 1e9) {
                    res = (long) 1e9 + 1;
                    break;
                }
                if(res > 1e9) break;
                last = last * last;
            }
            if(res <= 1e9 && res >= 0)System.out.println(res);
            else System.out.println(-1);
        }
    }
    

    学习链接:快速幂算法 超详细教程-CSDN博客

    信息

    ID
    35
    时间
    1000ms
    内存
    128MiB
    难度
    9
    标签
    递交数
    33
    已通过
    4
    上传者