酷代码 AI
菜单

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

```cpp #include <iostream> #include <cmath> using namespace std; int main() { int a, b; cin >> a >> b; // 计算 a^b 的值 long long result = 1; for (int i = 0; i < b; i++) { result *= a; // 检查是否超过 1e9 if (result > 1e9) { cout << -1; return 0; } } // 若未超过 1e9,输出结果 cout << result; return 0; } ``` 上述C++代码实现了计算 `a` 的 `b` 次方的功能。代码首先通过标准输入读取两个整数 `a` 和 `b`,然后使用循环累乘的方式计算 `a` 的 `b` 次方。在每次乘法运算后,检查结果是否超过 `1e9`,如果超过则输出 `-1` 并终止程序;如果未超过,则在循环结束后输出结果。 [2026-02-05 13:21:30 | AI问答 | 246点数解答]

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