在线编译器 C

#include <stdio.h> int main() { int a, b, i; long long t; scanf("%d %d", &a, &b); t=1; if(a>0 && b>=0) { if(b==0) { printf("1"); } if(b==1) { printf("%d", a); } if(b>1) { for(i=1;i<=b;i++) { t=t*a; } printf("%lld", t); } } else { printf("wrong"); } return 0; }
1) 这段代码用于计算整数a的b次幂(a^b),其中a必须为正数,b必须为非负数。如果输入合法,它会根据b的值直接输出1、a本身或通过循环计算幂结果;否则输出"wrong"。

2) 提示:注意当b较大时,幂结果可能超出`int`范围,因此代码使用了`long long`类型存储结果。另外,考虑一下如果b为0或1时,循环是否会被执行?