在线编译器 C

#include<stdio.h> int main(){ int n,m,temp; scanf("%d %d",&n,&m); for(int i=0;i<m;i++){ n=n*n; } printf("%d",n); return 0; }
1) 这段代码试图计算 n 的 m 次幂,但逻辑有误。它通过循环将 n 重复平方 m 次,实际上计算的是 n^(2^m),而不是 n^m。

2) 提示:  
   - 要计算 n 的 m 次幂,需要一个变量来保存累积结果(初始值为1),然后在循环中乘以 n 共 m 次。  
   - 注意整数溢出的可能性,尤其是当 n 或 m 较大时。