1 条题解

  • 0
    @ 2026-6-19 10:30:39

    📝 题目大意

    给定两个正整数 AABB2AB92 \le A \le B \le 9),计算并输出 AB+BAA^B + B^A 的值。

    💡 解题思路

    1. 题目分析:数据范围极小(A,B9A, B \le 9),最大结果为 99+99=774,840,9789^9 + 9^9 = 774,840,978,在 32 位 int 范围内(约 2.1×1092.1 \times 10^9),但使用 long long 更安全。不存在溢出、精度丢失等陷阱。

    2. 算法推导

      • 直接读入 ABint 类型即可)。
      • 调用 pow(A, B)pow(B, A) 分别计算 ABA^BBAB^Apow 返回 double,但底数和指数均为整数且结果在整数范围内,精度足够。
      • 将两者相加,结果存入 long long 变量 result 以避免潜在的类型转换问题。
      • 输出 result
    3. 边界与细节

      • 题目保证 ABA \le B,无需额外处理。
      • 由于数据范围极小,也可以手写快速幂或直接循环累乘,但标准库 pow 已足够。
      • 注意 pow 返回浮点数,直接赋值给 long long 会发生隐式类型转换,这在本题数据范围内没有精度问题。

    ⏱️ 复杂度分析

    • 时间复杂度O(1)O(1)pow 内部实现为 O(logB)O(\log B),但 B9B \le 9 视为常数。
    • 空间复杂度O(1)O(1)。只使用了常数个变量。

    💻 标准代码 (C++)

    #include <iostream>
    #include <cmath>
    using namespace std;
    
    int main() {
        int A, B;
        cin >> A >> B;
        // 计算 A^B + B^A,结果用 long long 存储以防溢出
        long long result = pow(A, B) + pow(B, A);
        cout << result << endl;
        return 0;
    }
    
    • 1

    信息

    ID
    737
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    (无)
    递交数
    1
    已通过
    1
    上传者