L1-012 计算指数 (5 point(s))

  • int ans = pow(2, n);

    最开始想想直接输出 pow() 函数的返回值,但发现结果都是错的,很不解,所以多声明一变量来保存答案再输出。

    看了下关于 pow() 介绍,发现该函数的函数类型是 double 跟这里 %d 的结果可能是不匹配的,所以结果需要进行类型转换 (int) 。

    pow()

  • 参考了其他人写法,该题底数是 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));
} 
上一篇:C/C++双叹号!!运算符


下一篇:012—JAVA8新特性(lambda表达式)