// 计算 a 的 b 次幂,a 为整数(-10 到 10),b 为正整数(1 到 40)
#include <stdio.h>
int main()
{
int a, b;//输入值a,b
scanf("%d %d", &a, &b);
int power = 1;//幂power
for (int i = 1; i <= b; i++) //循环变量i==累乘次数==输入值b
{
power = power * a;//幂底数a 累乘b次
}
printf("%d\n", power);
return 0;
这段代码的功能是计算整数 a 的 b 次幂,通过循环将 a 累乘 b 次得到结果并输出。代码逻辑基本正确,但有一个潜在问题需要注意。
- 当 b 较大时(比如接近 40),a 的 b 次幂可能会超出 int 类型能表示的范围(通常最大约 21 亿),导致整数溢出,输出错误结果。你需要考虑如何处理这种大数情况。
- 另外,当 a 为负数且 b 为奇数时,结果应为负数,你的代码能正确处理这种情况,但可以思考一下是否还有其他边界情况需要留意。