1 条题解
-
0
📝 题目大意
给定两个正整数 和 (),计算并输出 的值。
💡 解题思路
-
题目分析:数据范围极小(),最大结果为 ,在 32 位
int范围内(约 ),但使用long long更安全。不存在溢出、精度丢失等陷阱。 -
算法推导:
- 直接读入
A和B(int类型即可)。 - 调用
pow(A, B)和pow(B, A)分别计算 和 。pow返回double,但底数和指数均为整数且结果在整数范围内,精度足够。 - 将两者相加,结果存入
long long变量result以避免潜在的类型转换问题。 - 输出
result。
- 直接读入
-
边界与细节:
- 题目保证 ,无需额外处理。
- 由于数据范围极小,也可以手写快速幂或直接循环累乘,但标准库
pow已足够。 - 注意
pow返回浮点数,直接赋值给long long会发生隐式类型转换,这在本题数据范围内没有精度问题。
⏱️ 复杂度分析
- 时间复杂度:。
pow内部实现为 ,但 视为常数。 - 空间复杂度:。只使用了常数个变量。
💻 标准代码 (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
- 上传者