酷代码 AI
菜单
服务商

题目描述 小文同学刚刚接触了信息学竞赛,有一天她遇到了这样一个题:给定正整数 a a 和 b b,求 a b a b 的值是多少。 a b a b 即 b b 个 a a 相乘的值,例如 2 3 2 3 即为 3 3 个 2 2 相乘,结果为 2 × 2 × 2 = 8 2×2×2=8。 “简单!”小文心想,同时很快就写出了一份程序,可是测试时却出现了错误。 小文很快意识到,她的程序里的变量都是 int 类型的。在大多数机器上,int 类型能表示的最大数为 2 31 − 1 2 31 −1,因此只要计算结果超过这个数,她的程序就会出现错误。 由于小文刚刚学会编程,她担心使用 int 计算会出现问题。因此她希望你在 a b a b 的值超过 10 9 10 9 时,输出一个 -1 进行警示,否则就输出正确的 a b a b 的值。 然而小文还是不知道怎么实现这份程序,因此她想请你帮忙。 输入格式 输入共一行,两个正整数 a , b a,b。 输出格式 输出共一行,如果 a b a b 的值不超过

```cpp #include <iostream> using namespace std; int main() { int a, b; cin >> a >> b; long long result = 1; for (int i = 0; i < b; i++) { result *= a; if (result > 1e9) { cout << -1; return 0; } } cout << result; return 0; } ``` 代码解释: - 输入部分:使用`cin`读取两个正整数`a`和`b`。 - 计算部分:使用`for`循环进行`b`次累乘操作。每次循环将当前结果`result`乘以`a`。 - 判断部分:在每次累乘后,判断`result`是否超过了$10^9$(在代码中用`1e9`表示)。如果超过,则输出`-1`并结束程序。 - 输出部分:如果循环结束后`result`没有超过$10^9$,则输出`result`。 [2026-02-07 16:47:30 | AI问答 | 255点数解答]

相关提问
发财导航,免费问AI
实用工具查看更多