1037:计算2的幂
时间限制: 1000 ms 内存限制: 65536 KB
【题目描述】
给定非负整数n,求2n的值,即2的n次方。
【输入】
一个整数n。0≤n<31。
【输出】
一个整数,即2的n次方。
【输入样例】
3
【输出样例】
8
说明:
主要考查把数学问题转换为编程问题。
2n的值,即2的n次方,是n个2相乘的结果。
例如2²是2的2次方,也称2的平方,即2×2。
再如2³是2的3次方,也称2的立方,即2×2×2。
n的值是通过输入获取的、不确定的,所以不能直接相乘。对于没有学过更深的知识点(例如循环),可以使用pow函数(前面的题解有具体介绍过)。
pow函数原型:
double pow(double x, double y);
pow函数的使用方法:
包含数据库头文件:
C语言用法:<math.h>
C++用法:
其中x是底数,y是指数。例如本题应该这么用:pow(2, n),它返回的也是double类型,即它的结果。
例如pow(2, 3)的结果为8。
关于其他的解法,在后续的文章中会详细讲解到。
思路分析:
数据类型可以选择int类型,本题n的值小于31,2的31次方刚好在int类型的范围内。当然也可以选择unsigned、long等类型。
而pow函数返回的结果是double类型,所以应转换为整型。
求解过程:
声明1个整型类型变量n。
输入一个整数给变量n。
输出2的n次方。
参考代码 - C++:
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int n;
cin >> n;
cout << int(pow(2, n)); // 把pow的结果转为int类型
return 0;
}
参考代码 - C语言:
#include <stdio.h>
#include <math.h>
int main()
{
int n;
scanf("%d", &n);
printf("%d", (int)pow(2, n)); // 把pow的结果转为int类型
return 0;
}