-
int ans = pow(2, n);
最开始想想直接输出 pow() 函数的返回值,但发现结果都是错的,很不解,所以多声明一变量来保存答案再输出。
看了下关于 pow() 介绍,发现该函数的函数类型是 double 跟这里 %d 的结果可能是不匹配的,所以结果需要进行类型转换 (int) 。
-
参考了其他人写法,该题底数是 2 所以恰好可以用位运算的方式。只需要向高位进 n 位即可。 2^0 = 1, 所以初始值设为 1 。
cout << "2^" << n << " = " << (1 << n);
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;
cin >> n;
printf("2^%d = %d", n, (int)pow(2, n));
}
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;
cin >> n;
printf("2^%d = %d", n, (int)pow(2, n));
}